matlab 增加对比度,使用MATLAB中的查找表增加图像对比度

从您的评论来看,您只需要一个线性地图,其强度为< 50被映射到0,强度> 205映射到255,其他所有内容都是线性映射.你可以这样做:

slope = 255 / (205 - 50); % // Generate equation of the line -

% // y = mx + b - Solve for m

intercept = -50*slope; %// Solve for b --> b = y - m*x, y = 0, x = 50

LUT = uint8(slope*(0:255) + intercept); %// Generate points

LUT(1:51) = 0; %// Anything < intensity 50 set to 0

LUT(206:end) = 255; %// Anything > intensity 205 set to 255

LUT现在看起来像:

plot(0:255, LUT);

axis tight;

grid;

请注意我是如何截断强度的. 50和> 205. MATLAB在索引1处开始索引,因此我们需要将强度偏移1,以便它们正确映射到从0开始的像素强度.

要最终将其应用于您的图像,您所要做的就是:

out = LUT(img + 1);

这是假设img是您的输入图像.再次,请注意,当MATLAB在位置1开始索引时,我们必须将输入偏移1,而强度从0开始.

次要说明

您可以通过使用imadjust轻松完成此操作,这基本上是为您做的.你这样称呼它:

outAdjust = imadjust(in, [low_in; high_in], [low_out; high_out]);

low_in和high_in表示图像中存在的最小和最大输入强度.注意,这些在[0,1]之间归一化. low_out和high_out调整图像的强度,以便low_in映射到low_out,high_in映射到high_out,其他所有内容都是对比度延伸.对于你的情况,你会这样做:

outAdjust = imadjust(img, [0; 1], [50/255; 205/255]);

这应该拉伸对比度使得输入强度50映射到输出强度0并且输入强度205映射到输出强度255.任何强度<1. 50和> 205分别自动饱和到0和255.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值