怎样在MATLAB中用imhist提取一幅RGB图像的三个像素直方图?

问题描述:

怎样在MATLAB中用imhist提取一幅RGB图像的三个像素直方图?
记得不是很清楚了,用imread提取的是个3维数组A,imhist要求是2维的才行,忘了怎么从A里面提取了每个像素的矩阵了.做设计即用啊,有知道的感激不尽了.
1个回答 分类:综合 2014-09-27

问题解答:

我来补答
你的意思是把RGB 3层 分开来做imhist?这里用 football的图片做个例子
Img=imread('football.jpg');
BW = Img;
R=BW(:,:,1);
[REDcounts,x] = imhist(R);
G=BW(:,:,2);
[Greencounts,y] = imhist(R);
B=BW(:,:,3);
[Bluecounts,z] = imhist(R);
figure;
subplot(131);imhist(R);title('histogram of Red');
subplot(132);imhist(G);title('histogram of Green');
subplot(133);imhist(B);title('histogram of Blue');
figure;
Histcounts=REDcounts+Greencounts+Bluecounts;
Histogramdata=Histcounts';
这样子就差不多了 你自己再看看 Histcounts 和 Histgramdata里面都是 hist数据 不过一个是竖着看 一个是横着看 要出hist 图像 自己用hist这个命令好了
如果要综合 你已经分别得到每个色层的hist了 再相加就可以了
 
 
展开全文阅读
剩余:2000
上一页:单调性最小值
下一页:溶质质量