直方均衡化matlab代码

直方图均衡化是一种用于增强图像对比度的方法。在MATLAB中,你可以使用histeq函数来执行直方图均衡化。

matlab
% 读取图像 originalImage = imread('your_image.jpg'); % 请替换为你的图像文件名 % 将图像转换为灰度图 grayImage = rgb2gray(originalImage); % 执行直方图均衡化 equalizedImage = histeq(grayImage); % 显示原始图像和均衡化后的图像 subplot(2, 2, 1); imshow(originalImage); title('Original Image'); subplot(2, 2, 2); imhist(grayImage); title('Original Image Histogram'); subplot(2, 2, 3); imshow(equalizedImage); title('Equalized Image'); subplot(2, 2, 4); imhist(equalizedImage); title('Equalized Image Histogram');

请确保将your_image.jpg替换为你实际的图像文件名。这个示例首先读取图像,将其转换为灰度图,然后使用histeq函数执行直方图均衡化。最后,使用subplotimshow显示原始图像、原始图像的直方图、均衡化后的图像和均衡化后的直方图。

如果你希望直方图均衡化彩色图像,可以跳过灰度转换步骤,直接对彩色图像应用histeq函数。

如果你希望对彩色图像进行直方图均衡化,可以直接使用histeq函数,但是要对每个颜色通道分别进行处理。

matlab
% 读取彩色图像 originalImage = imread('your_color_image.jpg'); % 请替换为你的图像文件名 % 执行直方图均衡化 equalizedImage = originalImage; for channel = 1:3 % 遍历红、绿、蓝三个颜色通道 equalizedImage(:,:,channel) = histeq(originalImage(:,:,channel)); end % 显示原始图像和均衡化后的图像 subplot(2, 2, 1); imshow(originalImage); title('Original Color Image'); subplot(2, 2, 2); histogram(originalImage); title('Original Color Image Histogram'); subplot(2, 2, 3); imshow(equalizedImage); title('Equalized Color Image'); subplot(2, 2, 4); histogram(equalizedImage); title('Equalized Color Image Histogram');

这段代码与前面的示例类似,但它循环遍历图像的红、绿、蓝三个颜色通道,并分别对每个通道执行直方图均衡化。最后,使用subplotimshow显示原始彩色图像、原始图像的直方图、均衡化后的彩色图像和均衡化后的直方图。

确保将your_color_image.jpg替换为你实际的彩色图像文件名。

标签