1、线性点运算图像成像设备以及图像记录设备的动态范围太窄等原因,会导致图像成像曝光率不足或者过度,这张虢咆噘时就会用到点运算将灰度图像的线性范围进行拓展,线性点运算是指灰度变换函数为线性挣窝酵聒函数时的运算示例1:对图像进行线性点运算编写对应m文件如下:clear all;a=imread('coins.png');a1=a+30;%%图像灰度值增加30%%a2=1.5*a;%%图像对比度增加1.5倍%%a3=0.5*a;%%图像对比度减少为原来的0.5%%subplot(2,2,1)imshow(a);title('原始图像');subplot(2,2,2)imshow(a1);title('灰度值增加图像');subplot(2,2,3)imshow(a2);title('对比度增加图像');subplot(2,2,4)imshow(a3);title('对比度减少图像');程序运行结果如下图:
2、非线性点运算非线性点运算是指输出灰度值和输入灰度值成非线性函数关系,非线性点运算对应非线性的灰度映射函数,典型的非线性挣窝酵聒函数有平方函数,值域函数,多值量化函数等,之所以需要非线性点运算,是因为在成像时成像设备本身可能存在非线性失衡,需要对其进行校正。示例:对图像进行非线性点运算编写对应的m文件如下:clear all;a=imread('cameraman.tif');subplot(1,3,1)imshow(a);title('原始图像');x=1:255;y=x+x.*(255-x)/255;%%绘制曲线图%%subplot(1,3,2)plot(x,y);title('函数曲线图');b=double(a)+double(a).*(255-double(a))/255;subplot(1,3,3)imshow(uint8(b));title('非线性点运算处理图像');程序运行结果如下图:
3、直方图与点运算直方图是多种空间域处理技术的基础,直方图能够有效用于图像的增强,直方图在软件中也可以很方便的进行计算,是实时图像处理的一个重要工具,matlab中使用imhist函数来产生直方图,其调用格式如下:imhist(I);I表示图像矩阵,返回一幅图像,显示I的直方图线性点运算只是将图像的直方图拉伸后平移,形状基本不发生变化,超过灰度边界的积累在边界上,非线性点运算其直方图的形状会发生明显的变化示例:点运算对直方图的影响编写对应的m文件如下:a=imread('cameraman.tif');subplot(1,2,1)imhist(a);title('原始图像')b=1.5*double(a)+0.5;%%对直方图进行变换%%subplot(1,2,2)imhist(uint8(b));title('变换后的图像');程序运行结果如下图:
4、直方图均衡化是指对图像进行非线性拉伸,重新分配图像元值,是一定灰度范围内像素元值大致相同,matlab中histeq用于直方图均衡化,该函数调用格式如下:J=histeq(I);I表示原图像,J表示直方图均衡化后的图像示例:对图像进行直方图均衡化编写对应m文件如下:a=imread('peppers.png');subplot(2,2,1)imshow(a);title('原始图像');b=rgb2gray(a);subplot(2,2,2)imhist(b);title('原始图像直方图');b1=histeq(b);subplot(2,2,3)imshow(b1);title('直方图均衡化后图像');subplot(2,2,4)imhist(b1);title('均衡化后图像直方图');程序运行结果如下图:
5、另外函数adapthisteq函数首先对图像进行直方图均衡化,然后利用双线性插值法把各个小块进行拼接,以消除局部块造成的边界。该函数调用格式如下:J=adapthisteq(I);其中I表示原图像,J表示均衡化后的图像示例:使用函数adapthisteq函数对图像进行直方图均衡化编写对应m文件如下:a=imread('eight.tif');subplot(1,2,1)imshow(a);title('原始图像');b=adapthisteq(a);subplot(1,2,2)imshow(b);title('adapthisteq均衡化图像');程序运行结果如下图:
6、直方图规定化直方图规定化就是通过一个灰度函数,将原来的灰度图改造为我们所需要的灰度图像示例:利用直方图规定化对图像进行处理:编写对应的m文件如下:a=imread('tire.tif');subplot(2,2,1)imshow(a);title('原始图像');subplot(2,2,2)imhist(a);title('原始图像直方图')y=20:1:200;%%规定化函数%%b=histeq(a,y);subplot(2,2,3)imshow(b);title('规定化后图像')subplot(2,2,4)imhist(b);title('规定化后图像的直方图');程序运行结果如下: