中国史之【平王东迁】:
公元前771年,因镐京曾遭地震,残破不堪,又接近戎、狄等外患威胁,周平王遂在郑、秦、晋等诸侯的护卫下,将国都东迁至洛邑,东周历史由此开始。
——来源:全历史APP
【路漫漫其修远兮,吾将上下而求索】
今天介绍图像的直方图操作以及用matlab画条形图、杆图和折线图。本内容参考自《实用MATLAB图像和视频处理》第9章。
- 对于matlab2021的安装,可以参考公众号【CV之道】的文章:【matlab安装】手把手图文并茂安装matlab2021(win10版)
1、图像直方图显示
在matlab中,显示一幅图像的直方图,可以使用函数imhist。废话少说,直接看代码:
% 显示直方图
I = imread('circuit.tif');
figure, subplot(2,2,1), imshow(I), title('原图')
% 划分为256个灰度级
subplot(2,2,2), imhist(I,256), axis tight, title('直方图')
![【matlab图像处理】图像直方图操作和matlab画图](https://imgs.yssmx.com/Uploads/2023/05/440178-1.png)
% 划分为64个灰度级
subplot(2,2,3), imhist(I,64), axis tight, title('直方图64级')
% 划分为256个灰度级
subplot(2,2,4), imhist(I,32), axis tight, title('直方图32级')
![【matlab图像处理】图像直方图操作和matlab画图](https://imgs.yssmx.com/Uploads/2023/05/440178-2.png)
可以看到,整体变稀疏了,但是分布整体还是在的。值得注意的是,使用了axis tight这个参数,表示y轴的范围来自数据的范围。
可以看到,划分为256级的时候,y轴最大为2000。划为32级的时候,y轴最大为8000。因为总的像素数不变,划分级数更少,表明每个级数所包含的像素个数增多了。
2、条形图归一化y轴
我们可以探索一下这个问题,对y轴范围进行归一化。
% 归一化
c = imhist(I, 32);
% numel(I)表示该图像的像素数,这里是280x272=76160
c_norm = c / numel(I);
figure, subplot(1,2,1);
% 定制条形图
bar_1 = bar(c);
set(gca, 'XLim', [0 32], 'YLim', [0 max(c)]); % gca是当前轴,设置轴范围
set(gca, 'XTick', [0:8:32], 'YTick', [linspace(0,7000,8) max(c)]); % 设置轴显示数据范围
set(bar_1, 'FaceColor', 'r'), title('条形图'); % 设置颜色和标题
% 显示归一化的图
subplot(1,2,2);
bar_2 = bar(c_norm);
set(gca, 'XTick', [0:8:32], 'YTick', [linspace(0,0.09,10) max(c_norm)])
xlim([0 32]), ylim([0 max(c_norm)])
title('归一化条形图')
set(bar_2, 'FaceColor', 'g')
其中, numel(I)表示该图片的像素总数,280x272=76160。归一化y轴的图片如下:
![【matlab图像处理】图像直方图操作和matlab画图](https://imgs.yssmx.com/Uploads/2023/05/440178-3.png)
3、杆图或折线图归一化y轴
另外,我们也可以换一种显示风格,如显示杆图。
% 显示杆图
figure,
subplot(1,2,1), stem(c, 'fill', 'MarkerFaceColor', 'red'), axis tight, title('杆图')
subplot(1,2,2), stem(c_norm, 'fill', 'MarkerFaceColor', 'blue'), axis tight, title('归一化杆图')
![【matlab图像处理】图像直方图操作和matlab画图](https://imgs.yssmx.com/Uploads/2023/05/440178-4.png)
显示折线图:
% 显示折线图
figure,
subplot(1,2,1), plot(c), axis auto, title('折线图')
subplot(1,2,2), plot(c_norm), axis auto, title('归一化折线图')
![【matlab图像处理】图像直方图操作和matlab画图](https://imgs.yssmx.com/Uploads/2023/05/440178-5.png)
以上是本期内容,建议自己动手来实践一下。如果需要图片和代码,可以关注公众号,回复关键字【matlab代码】即可获得。我会上传到云盘。
【声明】:学习笔记基于互联网上各种学习资源的个人整理。
以上是本期内容,下期介绍图像处理的直方图均衡化操作。文章来源:https://www.toymoban.com/news/detail-440178.html
我叫小保,一名计算机视觉爱好者、学习者、追随者,欢迎关注我【CV之道】一起学习。文章来源地址https://www.toymoban.com/news/detail-440178.html
到了这里,关于【matlab图像处理】图像直方图操作和matlab画图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!