MATLAB数字图像处理之像素运算详解

需积分: 10 7 下载量 139 浏览量 更新于2024-07-18 收藏 2.7MB DOCX 举报
MATLAB图像运算笔记 MATLAB图像运算是数字图像处理中的一种重要技术,主要包含点运算和代数运算。点运算是指对图像的每一个像素点进行运算,从而实现图像的灰度变换、对比度增强等功能。 一、图像的点运算 点运算也叫做对比度增强、对比度拉伸或者灰度变换。其原理是通过图像中每一个像素点的灰度值进行运算。点运算的公式为: g(x,y) = f(f(x,y)) 其中,f(x,y)是原图像,g(x,y)是处理后的图像,f表示点运算的关系函数。 1. 线性灰度变换 线性灰度变换是指通过将原图像的灰度值映射到新的灰度值范围内,实现图像的对比度增强和灰度变换。MATLAB中使用imadjust函数实现线性灰度变换。imadjust函数的格式为: J = imadjust(I,[low_in;high_in],[low_out;high_out],gamma) 其中,I是原图像,J是处理后的图像,[low_in;high_in]是原图像中要变化的灰度范围,[low_out;high_out]是变换后的灰度范围,gamma是图像I成图像J时曲线的形状。 gamma的值影响着图像的对比度增强效果。如果gamma小于1,映射加权到较高的输出值,图像变亮;如果gamma大于1,映射加权到较低的输出值,图像变暗。 例如: I = imread('peppers.png'); 将图像数据分别赋值给R、G、B,分别将原图变成单色图像: R(:,:,2) = 0; R(:,:,3) = 0; R1 = imadjust(R,[0.5 0.8],[0 1],0.5); G = I; G(:,:,1) = 0; G(:,:,3) = 0; G1 = imadjust(G,[0 0.3],[0 1],0.5); B = I; B(:,:,1) = 0; B(:,:,2) = 0; B1 = imadjust(B,[0 0.3],[0 1],0.5); 求变换后的RGB图像: I1 = R1 + G1 + B1; 显示图像: subplot(421),imshow(R); subplot(422),imshow(R1); subplot(423),imshow(G); subplot(424),imshow(G1); subplot(425),imshow(B); subplot(426),imshow(B1); subplot(427),imshow(I); subplot(428),imshow(I1); 2. 分段线性灰度变换 分段线性灰度变换是指将图像的灰度值分成多个段,然后对每个段进行线性变换,以达到突出图像中感兴趣的目标或者灰度空间的目的。例如: J = imadjust(I,[0 0.3; 0.5 0.8],[0 0.5; 0.5 1],0.5); 其中,I是原图像,J是处理后的图像,[0 0.3; 0.5 0.8]是原图像中要变化的灰度范围,[0 0.5; 0.5 1]是变换后的灰度范围,0.5是图像I成图像J时曲线的形状。