《数字图像处理》-(1)数字图像基础+halcon代码

1基本概念

图像是一个二维亮度函数f(x,y),(x,y)定义了空间坐标,f(x,y)该点的亮度或灰度。
数字图像是指图像f(x,y)在空间坐标和亮度的数字化。数字图像是由有有限的元素组成的,每一个元素都有一个特定的位置和幅值,这些元素称为图像元素或像素

2视觉感知

人类的视觉系统能够适应光度级别范围很广,从夜视阈值到强闪光约有10^10量级。视觉系统不是同时在一个范围内工作。是通过灵敏度来完成这一较大变动的。称为亮度适应现象
马赫现象:它是一种主观的边缘对比效应。当观察两块亮度不同的区域时,边界处亮度对比加强,使轮廓表现得特别明显。在下图中,每个条条的光的灰度不变,每个条的灰度值都不一样,在视觉感知中,灰度小(暗)的右边靠近灰度值高的,在灰度小的条的右边看上去变暗,灰度大的左边看上去变亮,但实际上的这整个条是不变的。
在这里插入图片描述在这里插入图片描述
同时对比:同样两个灰色小方块,一个放在白色背景上,一个放在黑色背景上,结果在白色背景上的小方块看起来比黑色背景上的小方块要暗。
在这里插入图片描述
视觉错觉

左上角图像中正方形的轮廓看起来很清晰,但是图像中并没有定义这个图像的一条线。右上角图像中仅有几条直线导致了整个圆的错觉。
左下角图像两条直线一样长,但看起来一条比另一条短。右下角图像45°的线均是平行的直线,但由于交叉线产生了错觉,觉得45°线不平行。
电磁波谱
在这里插入图片描述
能量与频率成正比,频率越高震动越剧烈。因此伽马射线的能量最高,对活体组织的危害越大。可见光波段为0.43μm(紫色)-0。79μm(红色)。
图像形成模型:
当一幅图像从物理过程产生是,它的值正比于物理源的辐射能量。因此,f(x,y)一定是非零的和有限的。
函数f(x,y)可由两个分量来表征:(1)入射到观察场景的光源总量和,即入射分量i(x,y)。(2)场景中物体反射光的总量,即反射分量r(x,y)。则:f(x,y)=i(x,y)r(x,y),其中0<i(x,y)<∞,0<r(x,y)<1.x,y是像素的坐标点
图像取样和量化
将一幅图像转化为数字图像,必须在坐标和幅度上都做数字化操作。数字化坐标值称为取样,数字化幅度值称为量化。
在这里插入图片描述

3数字图像的表示

在这里插入图片描述
M、N取正整数,出于硬件方便处理的考虑,灰度级典型的取值是2的整数次幂
对于一幅大小为MxN,灰度级L=2k的数字图像,所需的存储空间是b=MxNxk。这里得出来的单位为bit,如果要换算成我们计算机中存储单位需要除以8为byte,再除以1024为KB,再除以1024为M。
例如一张81928192的三通道灰度等级为256的图像所占内存为:8192819238/8/1024/1024=192M。
称一幅2k的图像为k比特图像
屏幕分辨率:屏幕分辨率是指屏幕显示的分辨率。屏幕分辨率确定计算机屏幕上显示多少信息的设置, 以水平和垂直像素来衡量。屏幕分辨率低时(例如 640 x 480),在屏幕上显示的像素少,但尺寸比较大。屏幕分辨率高时(例如 1600 x 1200),在屏幕上显示的像素多,但尺寸比较小。显示分辨率就是屏幕上显示的像素个数,分辨率160×128的意思是水平方向含有像素数为160个,垂直方向像素数128个。屏幕尺寸一样的情况下,分辨率越高,显示效果就越精细和细腻。
像素间距(点距):像素间距(pixel pitch)的意义类似于CRT的点距(dot pitch),一般是指显示屏相邻两个象素点之间的距离。 我们看到的画面是由许多的点所形成的,而画质的细腻度就是由点距来决定的,点距的计算方式是以面板尺寸除以解析度所得的数值。以LCD为例,14英寸液晶显示器的可视面积一般为300mm×190mm,分辨率为1280×800,从而计算出此LCD的点距是300/1280=0.2344mm或者190/800=0.2375mm。点距越小,图像越细腻。
图像分辨率:在不同的应用场景中有不同的含义。在电脑中一般图像分辨率的表达方式为水平像素数×垂直像素数
数码图像:数码图像有两大类,一类是矢量图,也叫向量图;另一类是点阵图,也叫位图。矢量图比较简单,它是由大量数学方程式创建的,其图形是由线条和填充颜色的块面构成的,而不是由像素组成的,对这种图形进行放大和缩小,不会引起图形失真。
点阵图很复杂,是通过摄像机、数码相机和扫描仪等设备,利用扫描的方法获得,由像素组成的,是以每英寸的像素数(PPI)来衡量。点阵图具有精细的图像结构、丰富的灰度层次和广阔的颜色阶调。当然,矢量图经过图像软件的处理,也可以转换成点阵图。
灰度级分辨率:指在灰度级别中可分辨的最小变化
改变取样数目对图像的影响:
在这里插入图片描述
保留偶数行,保留偶数列就可以将1024x1024的图像抽样缩小为512x512的图像。
通过复制行和列可以使抽样后的图像复原到原来的大小。
灰度级变化的影响:
在这里插入图片描述
灰度级为256时有0-255的256种不同取值,灰度级为2时只有1和1两种不同的取值,在图像上的表现方式就是只有黑色和白色。
随着灰度级数目的减少,灰度级差异小的会被同化,差异大的差异越来越明显,就会出现明显的对比变化。

4图像插值算法

图像缩放算法往往基于插值实现,常见的图像插值算法包括最近邻插值(Nearest-neighbor)、双线性插值(Bilinear)、双立方插值(bicubic)、lanczos插值、方向插值(Edge-directed interpolation)、example-based插值、深度学习等算法。
插值缩放的原理是基于目标分辨率中的点,将其按照缩放关系对应到源图像中,寻找源图像中的点(不一定是整像素点),然后通过源图像中的相关点插值得到目标点。
在这里插入图片描述
最近邻插值Nearest-neighbor,是指将目标图像中的点,对应到源图像中后,找到最相邻的整数点,作为插值后的输出。如下图所示,P为目标图像对应到源图像中的点,Q11、Q12、Q21、Q22是P点周围4个整数点,Q12与P离的最近,因此P点的值等于Q12的值。
在这里插入图片描述

双线性内插:最近领差值用原图上的一个点去确定新位置的灰度,而这个方法使用4个最近邻去估计给定位置的灰度。如上图
我们先对R1 和 R2这两个点来进行插值,然后通过R1,R2来给P点进行插值。也就是先计算P点X方向的曲线,再获得P点在该条线上的值。通过Q12,Q22两个点做线性可求得R1的值,Q13,Q23得到R2的值,通过R1,R2可得到P点的线行值。
在这里插入图片描述在这里插入图片描述
在像素周围是现象的,但是在整幅图像中,该方法却不是线性的。
双三次内插法:最复杂同时也是效果最好的算法,由(x,y)的16个最近邻点来估计。逻辑同上,先X方向拟合成4条3次方程曲线,求得4个点,再Y方向拟合成一条3次曲线,或者先Y方向再X方向。
在这里插入图片描述
系数通过周围的16个点得出。

*实现图像缩放的几种方法
read_image (Image, 'printer_chip/printer_chip_01')
*1采用hom_mat2d_scale
hom_mat2d_identity (HomMat2DIdentity)
hom_mat2d_scale (HomMat2DIdentity, 2,2, 0, 0, HomMat2DScale)
affine_trans_image (Image, ImageAffineTrans, HomMat2DScale, 'nearest_neighbor', 'true')
*2zoom_image_factor
zoom_image_factor (Image, ImageZoomed, 0.5, 0.5, 'bicubic')
*3zoom_image_size
zoom_image_size (ImageZoomed, ImageZoom, 800,600, 'constant')

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

bicubic插值方式 最近领插值方式
上图左图为双三次内插法,右图为最近领插值法,可以明显看到最近领插值法突变更剧烈,双线性内插过渡较缓和。

5像素间的基本关系

在这里插入图片描述
在这里插入图片描述
城市街区距离在这里插入图片描述
棋盘距离
———

6图像的仿射变换

在这里插入图片描述
图像变换中可以为左乘或者又乘,注意。
在这里插入图片描述

read_image (Image, 'printer_chip/printer_chip_01')
*1 恒等变换
hom_mat2d_identity (HomMat2DIdentity)
*2 尺度变换
hom_mat2d_scale (HomMat2DIdentity, 2, 2, 0, 0, HomMat2DScale)
*3 旋转变换
hom_mat2d_rotate (HomMat2DIdentity, 0.78, 0, 0, HomMat2DRotate)
*4 偏移变换
hom_mat2d_translate (HomMat2DIdentity, 64, 64, HomMat2DTranslate)
*5 X偏移变换
hom_mat2d_slant (HomMat2DIdentity, -0.78, 'x', 0, 0, HomMat2DSlantx)
*6 Y偏移变换
hom_mat2d_slant (HomMat2DIdentity, -0.78, 'y', 0, 0, HomMat2DSlanty)
affine_trans_image (Image, ImageAffineTrans, HomMat2DSlanty, 'weighted', 'true')

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

参考文献:

https://blog.csdn.net/qq_33208851/article/details/96437161
https://blog.csdn.net/helimin12345/article/details/82117848
《数值图像处理》

                                </div><div data-report-view="{&quot;mod&quot;:&quot;1585297308_001&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/Guopinglu/article/details/107233724&quot;,&quot;extend1&quot;:&quot;pc&quot;,&quot;ab&quot;:&quot;new&quot;}"><div></div></div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
                            </div>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值