【发布时间】:2014-09-29 16:02:26
【问题描述】:
我是 openCV 的新手,这是我对矩阵维度主题的第一个疑问。
我正在通过函数 cv::calcHist(..) 计算彩色图像的直方图。
正如我所料,生成的矩阵是一个 3D 矩阵。我猜第三维是指每个 RGB 颜色通道的颜色,但我不知道如何访问它们。计算后,我有一个 3 维和 1 个通道的矩阵,我希望能够访问每个维度。
我认为 split 函数在这里无济于事,因为它只会将矩阵拆分为其通道。
调试我从 3Dhistrogram 矩阵中获得以下相关信息:
尺寸:3, 行:-1, 列:-1, 尺寸:256
我知道我可以通过首先将图像分成 3 个通道并随后计算每个通道的一维直方图来获得单个颜色直方图,但我很想知道 openCV 中的尺寸是如何工作的。
提前致谢!
【问题讨论】:
-
你看到这个tutorial了吗?
-
您好,感谢您的回答,但正如我提到的,他们之前正在拆分图像并计算各个直方图。我在询问处理由直接从彩色图像计算直方图产生的 3 维矩阵: cv::calcHist(&image,1,channels,cv::Mat(), hist,3,histSize,ranges);更多的是关于如何处理这些维度(无通道)的问题,而不是关于直方图的问题。
标签: c++ opencv multidimensional-array histogram channel