以下代码主要对一张图像进行灰度化和直方图均衡化的处理,并展示处理前后的直方图。

img = imread('test.jpg');
gray_img = rgb2gray(img);
balance_gray = histeq(gray_img);
balance_gray2 = histeq(balance_gray);

figure(1);
imhist(img, 64), title('original')
figure(2);
imhist(balance_gray, 64), title('first')
figure(3);
imhist(balance_gray2, 64), title('second')

代码分析:

  1. 读取图像:

    • img = imread('test.jpg'); 使用 imread 函数读取名为 'test.jpg' 的图像,并将图像数据存储在变量 img 中。
  2. 灰度化:

    • gray_img = rgb2gray(img); 使用 rgb2gray 函数将彩色图像 img 转换为灰度图像,并将结果存储在变量 gray_img 中。
  3. 直方图均衡化:

    • balance_gray = histeq(gray_img); 使用 histeq 函数对灰度图像 gray_img 进行直方图均衡化,并将结果存储在变量 balance_gray 中。
    • balance_gray2 = histeq(balance_gray); 再次使用 histeq 函数对 balance_gray 进行直方图均衡化,并将结果存储在变量 balance_gray2 中。
  4. 显示直方图:

    • figure(1); 创建一个新的图像窗口。
    • imhist(img, 64), title('original') 使用 imhist 函数显示原始图像 img 的直方图,参数 64 表示将直方图分成 64 个灰度级。使用 title 函数设置图像窗口的标题为 'original'。
    • figure(2); 创建一个新的图像窗口。
    • imhist(balance_gray, 64), title('first') 使用 imhist 函数显示 balance_gray 的直方图,并设置标题为 'first'。
    • figure(3); 创建一个新的图像窗口。
    • imhist(balance_gray2, 64), title('second') 使用 imhist 函数显示 balance_gray2 的直方图,并设置标题为 'second'。

相似但不同的代码示例:

img = imread('test.jpg');
gray_img = rgb2gray(img);
balance_gray = histeq(gray_img);
balance_gray2 = histeq(balance_gray);

figure(1);
subplot(2,2,1);
imshow(img);
title('Original Image');

subplot(2,2,2);
imshow(gray_img);
title('Gray Image');

subplot(2,2,3);
imshow(balance_gray);
title('First Histeq');

subplot(2,2,4);
imshow(balance_gray2);
title('Second Histeq');

figure(2);
subplot(2,2,1);
imhist(img, 64);
title('Original Histogram');

subplot(2,2,2);
imhist(gray_img, 64);
title('Gray Histogram');

subplot(2,2,3);
imhist(balance_gray, 64);
title('First Histogram');

subplot(2,2,4);
imhist(balance_gray2, 64);
title('Second Histogram');

代码说明:

  • 此代码将图像窗口分为 2x2 的子图布局,并在每个子图中显示不同的图像和直方图。
  • 使用 subplot 函数来设置子图的位置。
  • figure(1) 显示处理后的图像结果,figure(2) 显示直方图结果。
  • 该代码与原始代码功能相同,但使用了不同的图像显示方式,并使用 subplot 函数将图像和直方图组合在一起显示。

总结:

上述代码示例展示了如何使用 MATLAB 对图像进行灰度化和直方图均衡化处理,并显示处理前后图像的直方图。通过不同的代码实现方式,可以灵活地控制图像处理过程和结果的展示。

MATLAB图像处理代码分析:灰度化和直方图均衡化

原文地址: https://www.cveoy.top/t/topic/6vr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录