图像运算、增强等等

图像运算

  • 1、像素运算
    • 1.1、点运算-灰度变换
      • 1、线性灰度变换:
      • 2、分段线性变换:
      • 3、非线性变换:
    • 1.2、代数运算
      • 1、加法运算:
      • 2、减法运算:
      • 3、乘法运算:
      • 4、除法运算:
      • 5、其他运算:
  • 2、图像增强
    • 2.1、空域
      • 1、灰度变换增强:
      • 2、直方图增强:

1、像素运算

顾名思义,就是关于每个像素点的运算。

1.1、点运算-灰度变换

目的:改善画质,图像的显示效果更加清晰,在视觉上得到良好的改善。
标准:变换后像素的动态范围增加,图像的对比度拓展。

1、线性灰度变换:

目的:将原图像[a, b]处理后拓展为[c, d]。
作用:适用于曝光度不足或过度,灰度局限在一个很小的范围内。
公式:
函数: imadjust( img, [a, b], [c, d], gamma )

2、分段线性变换:

目的:突出图像中感兴趣的目标或者灰度区间,增强图像中各部分之间的反差。
作用:突出感兴趣的灰度空间,相对抑制不感兴趣的灰度空间。
公式:三个分段。…
代码:循环遍历每个像素点,对不同范围的灰度像素点处理。

3、非线性变换:

目的:只想分析图像的一部分。
作用:当图像的像素集中于中间灰度部分,而其他部分的像素很少。
公式:好几个。
代码:暂时用不到,用到了再补充。

1.2、代数运算

原理:两幅或多幅图像相应像素的加减乘除。
注意:matlab中图像的数据类型是unit8,进行代数运算可能溢出,要转为double。

1、加法运算:

目的:①生成叠加图像效果(一副图像叠加到另外一副图像上);
②改变图像亮度;(给每个像素加个常数)
③对同一副图像叠加多次,可消除噪音。
函数:imadd( imgA, imgB ) / imadd( img, 常数 )

2、减法运算:

目的:检测图像变化及运动物体,或检测一系列相同场景图像的差异。
应用:检测同一场景下两幅图像之间的变化或是混合图像的分离。
函数:imsubtract( imgA, imgB )

3、乘法运算:

目的:①实现掩模操作,即屏蔽图像的某些部分;
②图像乘以一个常数因子,常数因子<1,图像变暗,反而变亮。
函数:immultiply( imgA, imgB ) / immultiply( img, 常数 )

4、除法运算:

目的:给出两幅图像相应像素值的变化比率。(并不知道干什么用的)
作用:校正成像设备的非线性影响。
函数:imdivide( imgA, imgB ) / imdivide( img, 常数 )

5、其他运算:

1、绝对值差函数:imabsdiff( imgA, imgB )。两个图像对应元素相减并取绝对值。
2、图像求补函数:imcomplement( img )。

2、图像增强

2.1、空域

就是在像素域的计算,对图像的各个像素的灰度值直接进行处理,调整灰度图像的明暗对比度。

1、灰度变换增强:

函数:
1、brighten(img,beta):beta大于0小于1,图像变亮;beta小于0大于-1,图像变暗
2、stretchlim(img):获得图像的最佳扩充区间。

2、直方图增强:

作用:根据输入图像的灰度概率分布来确定其对应的输出灰度值,通过扩展图像的动态范围达到提升图像对比度的目的。
函数:
1、imhist(img):获得灰度图像的直方图。
2、histeq(img,n):直方图均衡化,n为均衡化后的灰度级数,默认64。
3、histeq(img,hgram):直方图规定化。

你可能感兴趣的:(matlab,图像识别)