如何在Matlab中改变直方图颜色

如何在Matlab中改变直方图颜色,matlab,image-processing,colors,histogram,Matlab,Image Processing,Colors,Histogram,所以我对Matlab很在行,我主要通过例子和逐字逐句的解释来学习。 所以在脑海中浮现出来——现在,我正试图通过直方图发现,我看到的一幅图像出现在另一幅图像中的可能性有多大 我想做的是为每个图像创建3个红色、蓝色和绿色直方图,然后将它们添加到一个图像中-因此基本上我会有一个图像,一个绿色直方图显示绿色,一个红色直方图显示红色,一个蓝色直方图显示蓝色 我知道要在matlab中显示彩色香奈儿,我必须执行imhist(图像(:,:,1/2/3) 然而,这仍然给了我一个蓝色的柱状图 我查了一些有助于解决这

所以我对Matlab很在行,我主要通过例子和逐字逐句的解释来学习。 所以在脑海中浮现出来——现在,我正试图通过直方图发现,我看到的一幅图像出现在另一幅图像中的可能性有多大

我想做的是为每个图像创建3个红色、蓝色和绿色直方图,然后将它们添加到一个图像中-因此基本上我会有一个图像,一个绿色直方图显示绿色,一个红色直方图显示红色,一个蓝色直方图显示蓝色

我知道要在matlab中显示彩色香奈儿,我必须执行imhist(图像(:,:,1/2/3) 然而,这仍然给了我一个蓝色的柱状图

我查了一些有助于解决这个问题的东西,但通常是针对那些知道自己在做什么的人……没有帮助。 我听过人们说一些像get(get(gca,'child'))的话,这对我来说简直是笑话

那么-对于我要做的,通过组织程序进行图像检测,这是一种合适的方法吗?如果是,我如何创建我的1个直方图,以各自的颜色显示所有3个直方图


干杯

您可以使用此版本的imhist:

[counts,x] = imhist(...)
然后通过
bar
stem
或类似方式自己绘制直方图。
这些功能可以完全自定义,您可以插入自己喜欢的颜色、线条样式等。

我在几个地方看到过:h=findobj(gca,'Type','patch');set(h,'FaceColor','r','EdgeColor','w'))如果这是最简单的方法,请有人解释一下好吗?我不知道它是做什么的,也不知道读得更远一点是什么。显然,代码对imhist不起作用。这是一种黑客行为。
findobj
在你的例子中,试图在当前类型为“patch”的轴中查找所有图形对象。这些是matlab使用的低级图形对象。如果
imhist
不使用补丁,这不起作用,但例如线条。干杯,但是我的朋友告诉我,如果我用每个颜色通道创建一个简单的imhist,然后像t1hist=[t1r,t1g,t1b]那样创建另一个hist;