原理:将灰度值落在一定范围内的目标进行对比度增强,在医学图像处理中用的多
matlab实现:
clc;
clear;
f = imread('1.jpg');%读入图片
figure;
imshow(f);%显示图片
f = rgb2gray(f);%将图片灰度化
[row,col] = size(f);%将矩阵image的行赋值给row,列赋值给col
%求斜率
fa = 95;
fb = 190;
k = (190-95)/255;
%求变换后的灰度值
g = zeros(row,col);%默认g 为double。g = f; g为uint8
for i = 1:row
for j = 1:col
if 0 <= f(i,j) && f(i,j) < fa
g(i,j) = 0*f(i,j);
else if fa <= f(i,j) && f(i,j) < fb
g(i,j) = k*f(i,j);
else if fb <= f(i,j) && f(i,j) < 255
g(i,j) = 0*f(i,j);
end
end
end
end
end
figure;
imshow(uint8(g));%因为声明g为double必须转为uint8,因为图像灰度范围[0,255]