数字语音处理及matlab仿真电子_数字图像处理matlab 灰度线性变换

输入图像的灰度取值区间为f(m,n)∈[a,b]

线性变换后输出图像的灰度取值区间为g(m,n)∈[c,d],则变换过程的表达式为:

g(m,n)=c+k[f(m,n)-a] 其中k=(d-c)/(b-a),称为变换函数的斜率

扩展动态范围:

22980b7d7c4dae6ce36d232fa2aca49a.png

改变取值区间:

5de5bcd689e5bfba0e3604145977e973.png

缩小动态范围:

291fb4460b68b54bab3d50cf68149beb.png

举个例子:

%假定图像的灰度取值范围是[0, 240],试求一个能将灰度范围从[0, 120]线性压缩至[0, 80][120, 240]线性移位至[80, 200]的灰度变换函数,并画出该灰度变换函数的函数图
I=imread('firework.JPG');
J=imadjust(I,[0.1 0.5],[]);
% subplot(1,2,1),imshow(I);
% subplot(1,2,2),imshow(J);
I_gray = rgb2gray(I);
% I_gray_uint8=uint8(I_gray);
I_gray_double=double(I_gray);
[rows,cols]=size(I_gray_double);
for i =1:rows
     for j=1:cols
          if I_gray_double(i,j)<50
            I_gray_double_fin(i,j)=(I_gray_double(i,j)-0).*((100-0)./(50-0))+0;                        
          else
              I_gray_double_fin(i,j)=I_gray_double(i,j);
%          if I_gray_uint8(i,j)
%              I_gray_uint8(i,j)=225-I_gray_uint8(i,j);
%         
         end
     end
end
fin_I_gray=I_gray_double_fin./255;


% fin_I = rgb(fin_I_gray);
 subplot(1,2,2),imshow( fin_I_gray);
subplot(1,2,1),imshow(I_gray)             
    

6dab81a9042c9a75bf37a19ae1bb2483.png
线性变换前后(右为原图)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值