matlab计算图像直方图
1.读取一个图像文件,并显示图像2.计算图像的直方图(不可调用imhist等函数,需自行实现从图像到直方图的计算),显示该直方图。
一、 实验目的
1.读取一个图像文件,并显示图像
2.计算图像的直方图(不可调用imhist等函数,需自行实现从图像到直方图的计算),显示该直方图
二.完整代码
%步骤1:图像读取
A = imread('D:\作业\处理图片.png);
%步骤2:将原图转换为灰度图像
B = rgb2gray(A); %从RGB创建灰度图
imwrite(B,'D:\电子作业\灰度处理图像.png); %保存灰度图
%步骤3:显示图像
subplot(2,2,1); %创建画布
imshow(A); %显示原图
title('原图','Fontsize',15,'Color','b'); %显示原图标题
subplot(2,2,2); %创建第二个画布
imshow(B);
title('灰度图,'Fontsize',15,'Color','b'); %显示原图标题
%步骤4:计算直方图
img=imread('D:\电子作业\灰度处理图像.png');
[row,lie,cb]=size(img);
zhi = zeros(1,256);
%记录每个灰度值的像素数目
for i = 1:row
for j = 1:lie
k = img(i,j);
zhi(k+1) = zhi(k+1)+1;
end
end
%绘制循环的直方图
subplot(2,2,3);bar(zhi);title('循环bar直方图')
%步骤五:与imhist进行对比
check_zhi = imhist(img);
subplot(2,2,4);imhist(img);title('imhist绘制直方图')
结果展示
实验显示图像与绘制的直方图结果如下
步骤分析
步骤一:图像读取
从网络上下载一张图片,使用imread函数读取该图像。
步骤二:将原图转换为灰度图像
使用rgb2gray将原图转换为灰度图像,并保存。
步骤三:显示图像
创建画布,分别显示原图和灰度图
步骤四:计算直方图
记录每个灰度值的像素个数,然后作图
步骤五:与imhist进行对比
将步骤四中计算绘制的直方图与matlab内置函数imhist生成的直方图作对比
实验结论及分析讨论
1.matlab使用函数总结
(1)imread------图像读入函数
A = imread(‘filename’) ;
从 filename 指定的文件读取图像,并从文件内容推断出其格式。如果 filename 为多图像文件,则 imread 读取该文件中的第一个图像
(2)rgb2gray()------图像灰度化处理函数
I = rgb2gray(RGB);
rgb2gray函数通过消除色调和饱和度信息,同时保留亮度,将RGB图像转换为灰度图。
(3)imwrite()------图像写入函数
imwrite(A,‘filename’);
将图像数据A写入filename指定的文件,并从扩展名推断出文件格式。imwrite在当前文件夹中创建新文件,输出图像的位深度取决于A的数据类型和文件格式。
(4)imshow()------图像显示函数
imshow(I);
在图窗中显示灰度图像I。imshow使用图像数据类型的默认显示范围,并优化图窗、坐标区和图像对象属性以便显示图像。
imshow(‘filename’);
显示存储在由filename指定的图形文件中的图像。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)