在Matlab中,读入一副图片并显示出来,编写一个显示灰度图像直方图的函数,并与matlab自带函数的运行结果进行比较。
时间: 2024-10-11 20:08:09 浏览: 27
在MATLAB中,首先需要使用`imread`函数来读取图片。假设图片名为`image.jpg`,可以这样做:
```matlab
% 读取图片
img = imread('image.jpg');
% 检查是否成功读取
if ~isempty(img)
% 显示原始图片
figure;
imshow(img);
% 转换为灰度图像
gray_img = rgb2gray(img);
% 显示灰度图像
figure;
imshow(gray_img, 'XData', [0 256], 'YData', [0 256]);
title('Gray-Scale Image');
% 计算并显示灰度图像的直方图
hist_gray = imhist(gray_img, 256); % 使用256个bin
figure;
plot(hist_gray);
xlabel('Intensity');
ylabel('Frequency');
title('Histogram of Gray-Scale Image');
% 使用matlab内置函数计算并比较直方图
hist_matlab = imhist(gray_img);
hold on; % 保持当前图形
plot(hist_matlab, 'r--'); % 红色虚线表示MATLAB自带函数的结果
legend('Your Function', 'Built-in MATLAB Function');
hold off;
阅读全文