对比度拉伸函数
对比度拉伸函数是一种用于增强图像对比度的方法,也被称为灰度变换。它可以将图像中像素值较低和较高的区域拉伸到较佳的亮度范围内,从而增加图像的对比度。
对比度拉伸函数通常采用以下形式:
其中,f(x,y)表示原始图像中像素(x,y)的灰度值;min和max分别是图像中所有像素的最小灰度值和最大灰度值;L是拉伸后的灰度级数。
对比度拉伸函数的作用是将原始图像的灰度值映射到0到L−1的范围内,这样可以使得图像中的像素值更加均匀地分布在整个灰度级范围内,从而增强图像的对比度。
使用MATLAB内置函数imadjust
进行对比度拉伸
% 读取图像
image = imread('image.jpg');
% 对比度拉伸
stretched_image = imadjust(image);
% 显示原始图像和拉伸后的图像
figure;
subplot(1, 2, 1);
imshow(image);
title('Original Image');
subplot(1, 2, 2);
imshow(stretched_image);
title('Stretched Image');
手动实现对比度拉伸函数
% 读取图像
image = imread('image.jpg');
% 计算最小灰度值和最大灰度值
min_value = min(image(:));
max_value = max(image(:));
% 定义拉伸后的灰度级数
L = 256;
% 对比度拉伸函数
stretched_image = uint8((double(image) - min_value) / (max_value - min_value) * (L - 1));
% 显示原始图像和拉伸后的图像
figure;
subplot(1, 2, 1);
imshow(image);
title('Original Image');
subplot(1, 2, 2);
imshow(stretched_image);
title('Stretched Image');