数字图像处理Matlab实现 冈雷萨斯

参考书:数字图像处理的MATLAB实现(第二版)冈雷萨斯

Chapter 2

image = imread(file);

2.2 灰度变换函数(Intensity Transformation Functions)

s = T ( r ) s = T(r) s=T(r)

2.2.1 函数:imadjust and stretchlim

g = imadjust(image,[low_in high_in],[low_out high_out],gamma)

整体函数表达意思

  • 图像将根据设置的参数进行调整
  • 1:将要调整的图像,实际传入的是图像的灰度值范围
  • 将[low_in,high_in]范围内的值映射到[low_ou t,high_out]
  • [0,low_in]和[high_in,255]的值将会被截去----低于low_in的都会置为0,高于high_in的都会置为1,即比目标值亮的,直接设置为最亮,比目标值黑的,直接设置为最黑,可以将除了需要部位意外的地方调到最大对比度。
  • 整体范围都在[0,1]内
  • gamma表示映射时曲线的形状,gamma默认为1(线性映射);gamma<1,映射被加权至较亮输出值,gamma>1,映射被加权至较暗输出值。

举个栗子

原图像图下:

breast_cancerbreast_cancer1-1

例1. 图像反转
g = imadjust(image,[0 1],[1 0]);

g = imcomplement(image);

得到结果如下:

breast_cancer1-1

例子2. 加强部分区域灰度,以展示感兴趣区域
g = imadjust(image,[0.5 0.75],[0 1]);

对于灰度在[0.5,0.75]之间的像素,将其等比例映射到[0,1]范围内,低于0.5的都会置为0,高于0.75的都会置为1.

得到效果如下:

breast_cancer1-2
Low_high = stretchlim(image);
g = imadjust(f,stretchlim(image),[ ]);

stretchlim可以通过压缩灰度图像的低端和拓展高端,产生效果和上述例2类似。

效果图:

breast_cancer1-3

stretchlim(image)实际返回的就是[low_in high_in],且它默认返回的是image中像素饱和度底部和顶部的1%,故和例2的[0.5,0.75]相比,图像显得暗了很多。

stretchlim通用语法格式:

stretchlim(image,tol)

tol默认值为[0.01 0.99],当tol为某单个标定值value,则image参数中的[low_in high_in]值分别为[value 1-value];如果指定tol为0,则image为像素饱和度会设置为[min(f(😃),max(f(😃)]

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MaybeRichard

请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值