% 选择图像文件并读取图像
[filename, pathname] = uigetfile({'*.bmp;*.gif;*.jpg;*.png;*.tif','所有支持的图像文件'}, '选择图像文件');
I = imread(fullfile(pathname, filename));
% 将图像转换为灰度图像
if size(I, 3) == 3
I_gray = rgb2gray(I);
else
I_gray = I;
end
% 对灰度图像进行高斯滤波,以减少图像中的噪声
I_gauss = imgaussfilt(I_gray, 2);
% 对灰度图像进行边缘检测,以突出图像中的特定特征
I_edges = edge(I_gauss, 'Canny');
% 计算灰度值密度
[counts, bins] = imhist(I_gray);
% 显示原始图像、处理后的图像和灰度值密度图
subplot(1, 3, 1), imshow(I_gray), title('原始图像');
subplot(1, 3, 2), imshow(I_edges), title('边缘检测后的图像');
subplot(1, 3, 3), bar(bins, counts), title('灰度值密度');
%第1行:使用 uigetfile 函数打开文件对话框,让用户选择图像文件。
第2行:使用 fullfile 函数将文件名和路径名组合成完整的路径。
第4-8行:如果图像是彩色图像,则使用 rgb2gray 函数将其转换为灰度图像;否则直接使用灰度图像。
第11-14行的代码与之前相同。
第17-20行:使用 subplot、imshow 和 bar 函数显示原始图像、处理后的图像和灰度值密度图。