MATLAB--图像的像素运算--点运算

图像点运算

点运算又称为对比度增强、对比度拉伸或灰度变换,是一种通过对图像中的每一个像素值进行运算的图像处理方式。它将输入图像映射为输出图像,输出图像每个像素点的灰度值仅由对应的输入像素点的灰度值决定,运算结果不会改变图像内像素点之间的空间关系。简而言之,点运算仅仅改变了图像像素点的灰度值。

其运算的数学关系式为:

B(x,y)=f [A(x,y)] 

根据灰度变换的数学关系,点运算可以分为线性灰度变换、分段线性灰度变换和非线性灰度变换3种。

1、线性灰度变换

假定原图像A(x,y)的灰度变换范围为[a,b],处理后的图像B(x,y)的灰度扩展为[c,d],线性灰度变换运算的数学表达式为:

B(x,y)=[(d-c)/(b-a)][A(x,y)-a]+c

MATLAB实现–imadjust()函数

示例:

% 将低对比度灰度图像读入工作区并显示
I=imread('G:\picture\Fig0230(a)(dental_xray).tif');
subplot(1,3,1); imshow(I); 
% 调整图像对比度,imadjust 对所有像素值中最低的 1% 和最高的 1% 进行饱和处理并显示
J=imadjust(I);
subplot(1,3,2); imshow(J); 
% 在指定对比度限制情况下调整灰度图像对比度
K=imadjust(I,[0.3,0.7],[]);
subplot(1,3,3); imshow(K);

运行结果:
运行结果

2、分段线性灰度变换

为了突出图像中感兴趣的目标或者灰度区间,可采用分段线性法,将需要的图像细节灰度拉伸、对比度增强。

MATLAB实现
示例:

% 读入原图像并显示
I=imread('G:\picture\Fig0226(galaxy_pair_original).tif');
I=im2double(I);
subplot(1,2,1); imshow(I); 
[M,N]=size(I); %获得灰度图像I的行数M和列数N
J=zeros(M,N);
%对灰度图像I进行分段处理
for x=1:M
    for y=1:N
        if (I(x,y)<=0.3)
            J(x,y)=I(x,y)*2;  
        else if(I(x,y)>0.3&&I(x,y)<=0.7)
                J(x,y)=I(x,y)+0.2;
            else(I(x,y)>0.7)
                J(x,y)=I(x,y); 
            end
         end
    end
end
subplot(1,2,2); imshow(J); 

运行结果:
分段线性灰度变换

3、非线性灰度变换

当输出图像的像素点灰度值和输入图像的像素点灰度值不满足线性关系时,这种灰度变换称为非线性灰度变换。

MATLAB实现
示例:

% 读入原图像并显示
I=imread('G:\picture\Fig0226(galaxy_pair_original).tif');
I=im2double(I);
subplot(1,2,1); imshow(I); 
J=(log(I+1))/2; %进行基于常用对数的非线性灰度变换
subplot(1,2,2); imshow(J); 

运行结果:
非线性灰度变换

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值