1. 图像求反
img = imread('your_image.jpg'); % 替换为你的图像文件名
if size(img, 3) == 3
img = rgb2gray(img); % 如果是彩色图像,则转换为灰度图像
end
% 图像求反
img_neg = 255 - img;
2. 动态范围压缩
c = 1; % 尺度常数,可根据需要调整
img_log = c * log(1 + double(img)); % 对数变换
img_log = uint8(255 * mat2gray(img_log)); % 将结果映射到0-255范围并转换为uint8类型
3. 对比度增强
in_min = double(min(img(:)));
in_max = double(max(img(:)));
out_min = 0;
out_max = 255;
scale_factor = (out_max - out_min) / (in_max - in_min);
offset = out_min - in_min * scale_factor;
img_contrast = uint8(img * scale_factor + offset);
4.显示结果
figure;
subplot(2,2,1);
imshow(img);
title('原始图像');
subplot(2,2,2);
imshow(img_neg);
title('图像求反');
subplot(2,2,3);
imshow(img_log);
title('动态范围压缩(对数变换)');
subplot(2,2,4);
imshow(img_contrast);
title('对比度增强(线性拉伸)');
实验最终结果如图所示