您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖”吧!
寫了一個輸入圖片,便會生成美觀的圖像各通道亮度分布圖的函數(shù),大概效果如下:
老樣子,工具函數(shù)放在最前面,之后會介紹咋用這個函數(shù):
工具函數(shù)
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
函數(shù)調用
非常簡單的使用方法,就是讀取圖片后調用函數(shù)即可:
pic=imread('test.png'); HistogramPic(pic)
若圖像是彩圖則效果如下:
若圖像為灰度圖則效果如下:
感謝各位的閱讀,以上就是“怎么用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖”的內容了,經過本文的學習后,相信大家對怎么用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。