写一段matlab代码画出一个图像的灰度直方图并且不能使用MATLAB自带的imhist函数,并作直方图均衡化处理。
时间: 2023-03-27 08:03:05 浏览: 158
MATLAB教学视频:空间域图像增强之灰度变换和直方图均衡匹配 课件
好的,我可以回答这个问题。以下是代码:
img = imread('image.jpg'); % 读取图像
gray_img = rgb2gray(img); % 转换为灰度图像
[m, n] = size(gray_img); % 获取图像大小
% 计算灰度直方图
histogram = zeros(256, 1);
for i = 1:m
for j = 1:n
pixel_value = gray_img(i, j);
histogram(pixel_value + 1) = histogram(pixel_value + 1) + 1;
end
end
% 画出灰度直方图
bar(histogram);
% 直方图均衡化处理
cdf = cumsum(histogram) / (m * n);
equalized_img = uint8(255 * cdf(gray_img + 1));
% 显示均衡化后的图像
imshow(equalized_img);
希望这个代码能够帮到您。
阅读全文