灰度变换函数

傷城~ 2022-04-18 00:18 369阅读 0赞

imadjust

  • g=imadjust( f, [low_in high_in] ,[low_out,high_out],gamma)
  • 功能:将输入图像 f 中灰度值 映射为图像 g中新值
  • 参数说明:
  1. [low_in high_in] ,[low_out,high_out] 默认[0 1]

    • 将[low_in high_in] 之间的值映射到[low_out,high_out]
    • low_in以下和high_in以上将截去,统一映射成low_out和high_out
    • 所有值在0-1之间,输入图像可以uint8、uint16等,(如uint8在进行处理的时候乘以255即可)
  2. gamma默认:1
    在这里插入图片描述
    当gamma<1,映射曲线如图,将低灰度 映射到 高灰度,呈现效果就是图片变白 ![在这里插入图片描述][20181105222728568.jpg] 当gamma=1,映射曲线如图,图像是线性,呈现效果就是图片没变(等值映射,否则有变化,得到灰度值扩大或者缩小) ![在这里插入图片描述][20181105222755639.jpg] 当gamma>1,映射曲线如图,将高灰度 映射到 低灰度,呈现效果就是图片变黑

  • 代码实例:

    I = imread(‘pout.tif’);
    imshow(I);

    figure
    A=imadjust(I,[0 1],[1 0],1); %负片,可以用A=imcomplement(I) 函数得到,强调一大片黑色区域中的白色细节的时候很有效
    imshow(G);

    figure
    B=imadjust(I,[0.3 0.8],[0 1],1); %将0.3到0.8之间扩展到0-1,强调感兴趣的灰度区域
    imshow(B);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


stretchlim

  • Low_High=stretchlim( f ,tol )
  1. f是输入图像,tol 可以是二维行向量,如:[0.1 0.9] ,返回Low_High也是两个元素的向量,tol是一个百分比,它的意思:图像所有像素底部10%的那个位置像素 到 高部分90%的那个位置像素,这两个位置分别对应输出Low High。
  2. 如果tol是一个数,则等价于[tol 1-tol]
  3. 忽略tol :[0.01 0.99]
  4. tol是0:返回Low:min(f) High:max(f) 相当于整个图像的像素范围
  • 得到负片代码实例

    I = imread(‘pout.tif’);

    figure(1)
    J=imadjust(I,[0 1],[1 0]); %从0-1之间,但有可能图像范围没有那么广,或者只有很少的椒盐噪声,那么0和1周围的像素点属于无效映射
    imshow(J)

    figure(2)
    G=imadjust(I,stretchlim(I),[1 0]);% 利用stretchlim得到I图像的范围,得到负片的对比于上一种方法
    imshow(G)

figure1
在这里插入图片描述
figure2
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,369人围观)

还没有评论,来说两句吧...

相关阅读