0

我正在开发一个 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 维。请帮助我,如果有类似于calcHist()openCV 的功能,那么建议我这样做。

4

1 回答 1

0

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

于 2015-10-29T22:07:03.037 回答