MATLAB图像点运算

2025-10-23 00:24:52

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('对比度减少图像');

程序运行结果如下图:

MATLAB图像点运算

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('非线性点运算处理图像');

程序运行结果如下图:

MATLAB图像点运算

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('变换后的图像');

程序运行结果如下图:

MATLAB图像点运算

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('均衡化后图像直方图');

程序运行结果如下图:

MATLAB图像点运算

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均衡化图像');

程序运行结果如下图:

MATLAB图像点运算

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('规定化后图像的直方图');

程序运行结果如下:

MATLAB图像点运算

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢