服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - 利用Matlab实现图像亮度分布统计图

利用Matlab实现图像亮度分布统计图

2022-12-05 13:19slandarer C/C++

这篇文章主要介绍了如何利用Matlab实现图像亮度分布统计图的绘制,文中的示例代码讲解详细,对我们学习Matlab有一定的帮助,感兴趣的可以了解一下

写了一个输入图片,便会生成美观的图像各通道亮度分布图的函数,大概效果如下:

利用Matlab实现图像亮度分布统计图

利用Matlab实现图像亮度分布统计图

老样子,工具函数放在最前面,之后会介绍咋用这个函数:

工具函数

function HistogramPic(pic)
FreqNum=zeros(size(pic,3),256);
for i=1:size(pic,3)
  for j=0:255
      FreqNum(i,j+1)=sum(sum(pic(:,:,i)==j));
  end
end
ax=gca;hold(ax,'on');box on;grid on
if size(FreqNum,1)==3
  bar(0:255,FreqNum(1,:),'FaceColor',[0.6350 0.0780 0.1840],'FaceAlpha',0.5);
  bar(0:255,FreqNum(2,:),'FaceColor',[0.2400 0.5300 0.0900],'FaceAlpha',0.5);
  bar(0:255,FreqNum(3,:),'FaceColor',[0      0.4470 0.7410],'FaceAlpha',0.5);
  ax.XLabel.String='RGB brightness';
  rrange=[num2str(min(pic(:,:,1),[],[1,2])),' , ',num2str(max(pic(:,:,1),[],[1,2]))];
  grange=[num2str(min(pic(:,:,2),[],[1,2])),' , ',num2str(max(pic(:,:,2),[],[1,2]))];
  brange=[num2str(min(pic(:,:,3),[],[1,2])),' , ',num2str(max(pic(:,:,3),[],[1,2]))];
  legend({['R: range[',rrange,']'],['G: range[',grange,']'],['B: range[',brange,']']},...
           'Location','northwest','Color',[0.9412    0.9412    0.9412],...
           'FontName','Cambria','LineWidth',0.8,'FontSize',11);
else 
  bar(0:255,FreqNum(1,:),'FaceColor',[0.50 0.50 0.50],'FaceAlpha',0.5);
  ax.XLabel.String='Gray scale';
  krange=[num2str(min(pic(:,:,1),[],[1,2])),' , ',num2str(max(pic(:,:,1),[],[1,2]))];
  legend(['Gray: range[',krange,']'],...
         'Location','northwest','Color',[0.9412    0.9412    0.9412],...
         'FontName','Cambria','LineWidth',0.8,'FontSize',11);
end
ax.LineWidth=1;
ax.GridLineStyle='--';
ax.XLim=[-5 255];
ax.XTick=[0:45:255,255];
ax.YLabel.String='Frequency number';
ax.FontName='Cambria';
ax.FontSize=13;
end

函数调用

非常简单的使用方法,就是读取图片后调用函数即可:

pic=imread('test.png');
HistogramPic(pic)

若图像是彩图则效果如下:

利用Matlab实现图像亮度分布统计图

利用Matlab实现图像亮度分布统计图

若图像为灰度图则效果如下:

利用Matlab实现图像亮度分布统计图

利用Matlab实现图像亮度分布统计图

以上就是利用Matlab实现图像亮度分布统计图的详细内容,更多关于Matlab亮度分布统计图的资料请关注服务器之家其它相关文章!

原文链接:https://mp.weixin.qq.com/s/99WTQ9BAav47dir7eiFHbw

延伸 · 阅读

精彩推荐