数字图像处理-空间域图像增强(一)(图像反转,对数变换,幂次变换、分段线性变换)

空间域增强的第部分:图像反转对数变换幂次变换分段线性变换


(s:现点值,r: 原点值)

图像反转:

    这个无需多说,就是把黑变白,白变黑,拿八位灰度图像来说                                

    表达式:s=255-r

    作用:看清暗色图像中白色和灰色的细节。


对数变换:

    此变换使一窄带低灰度输入图像值映射为一宽带输出值。相对的是输入灰度的高调整值。可以利用这种变换来扩展被压缩的高值图像中的暗像素。相对的是反对数变换的调整值。(这段转自《数字图像处理》(第二版)(冈萨雷斯))

                附:说的太透彻了,找不到比这更好的语言了 

      表达式:s=c log(1+r);

     变换曲线:

     应用:用于对数值范围过大的数据进行调整显示,如傅立叶变换后的图像数据(0-1.5e6).


幂次变换:

    又叫伽玛校正,和对数变换的原理差不多,不多说了,只是参数多了一个,可变宽带的输入像素值范围可选了,把低值带拉伸还是把高值拉伸要看伽马的设定了。

    表达式:伽马变换(这个是图片格式,粘的太丑,不过不影响什么)

变换曲线:

                 一个是伽马等于4,一个是伽马等于0.2;一个拉伸高像素值的范围,一个拉伸低像素值的范围。哪部分的斜率越大,哪部分的拉伸比例就越大。


分段线性变换:

分为:对比拉伸灰度切割位图切割

图:

 位图切割就是比如8位的图像,我把像素点的每一位拿出来做个位平面,然后就有8个位平面了。


以上这几个处理方法都是将固定范围内的像素值的显示范围放大或缩小,让图像更符合人为意愿。

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 MATLAB 中进行图像对数变换函数变换分段线性变换的代码: 1. 图像 ``` % 读取图像 img = imread('lena.jpg'); % 图像 img_reverse = 255 - img; % 显示原图和后的图像 subplot(1,2,1), imshow(img); title('Original Image') subplot(1,2,2), imshow(img_reverse); title('Reversed Image') ``` 2. 对数变换 ``` % 读取图像 img = imread('lena.jpg'); % 对数变换 c = 255/log(1+max(max(img))); img_log = c*log(1+double(img)); % 回 uint8 类型 img_log = uint8(img_log); % 显示原图和对数变换后的图像 subplot(1,2,1), imshow(img); title('Original Image') subplot(1,2,2), imshow(img_log); title('Logarithmic Transformation') ``` 3. 函数变换 ``` % 读取图像 img = imread('lena.jpg'); % 函数变换 gamma = 0.5; img_power = 255*(double(img)/255).^gamma; % 回 uint8 类型 img_power = uint8(img_power); % 显示原图和函数变换后的图像 subplot(1,2,1), imshow(img); title('Original Image') subplot(1,2,2), imshow(img_power); title('Power-Law Transformation') ``` 4. 分段线性变换 ``` % 读取图像 img = imread('lena.jpg'); % 分段线性变换 img_piecewise = zeros(size(img)); img_piecewise(img<=100) = img(img<=100)*0.5; img_piecewise(img>100 & img<=200) = (img(img>100 & img<=200)-100)*0.7+50; img_piecewise(img>200) = (img(img>200)-200)*0.4+125; % 回 uint8 类型 img_piecewise = uint8(img_piecewise); % 显示原图和分段线性变换后的图像 subplot(1,2,1), imshow(img); title('Original Image') subplot(1,2,2), imshow(img_piecewise); title('Piecewise Linear Transformation') ``` 注意:以上代码仅为示例,实际应用时可能需要根据具体情况进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值