Matlab中的3D HSV图像直方图,具有不同的编号。每个频道的垃圾箱?

时间:2015-10-29 21:31:18

标签: matlab image-processing machine-learning computer-vision cbir

我正在开发一个CBIR系统,我正在使用HSV直方图作为我的功能之一。对于每个图像,我想计算一个直方图,其中有n1个色调用于色调,n2用于饱和,n3用于值。我想要一个具有n1xn2xn3维度的向量,具有这些区间的所有可能组合。 例如:如果我分别为色调,饱和度和值取一个元组(8,12,3),那么我想计算一个8x12x3 = 288维向量。 在openCV中我们有calcHist()函数来执行此操作,但我在matlab中找不到类似的函数。 这就是我所做的

%roi1 is my region of interest, y1 is the vector 
y1=[imhist(roi1(:,:,1),8)' imhist(roi1(:,:,2),12)' imhist(roi1(:,:,3),3)'];

但是y1将是23维而不是期望的288维。如果有类似于openCV的calcHist()的功能,请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

您计算的是一系列单维直方图,而不是多维直方图。例如,imhist(roi1(:,:,1),8)'仅是色调值的计数,忽略对应的饱和度或像素的值。 Mathworks网站上有代码来计算n维直方图,它应该提供您所追求的内容:http://www.mathworks.com/matlabcentral/fileexchange/23897-n-dimensional-histogram