我有计算 hsv 和 yuv 图像直方图的代码。由于我试图单独获取与亮度对应的值,因此我想要来自 hsv 图像的“v” channel 值和来自 yuv 图像的亮度(“y”) channel 值。这是我用过的代码。
int channels[] = {0};
calcHist(&src_yuv,1,channels,Mat(),hist,1,histSize,ranges,true,false);
此示例代码适用于 yuv。我只是将 {0} 更改为 {2} 以从 HSV 获取“v” channel 值。我得到了某些结果,但不确定是否选择了正确的 channel 。你能帮我看看这些数字是否选择了我想要的确切 channel 吗?提前致谢
要绝对确定 channel 号X
对应于您之后的 channel ,请查阅IPL Image structure 的channelSeq
属性。 .如果 channelSeq[X]
给出了您正在搜索的 channel 的名称(一个字符),那么您就找到了它。
但是,考虑到此属性的记录方式(以及其他有趣的属性),即使您一直使用 IPLImage
,也无法保证其中包含的信息是准确的。因此,要绝对确定图像中的 channel 序列,您必须相信转换规范并记住这一点。因此,如果您从 BGR
中的图像开始并使用 BGR2YUV
进行转换,那么您相信 Y
channel 是第一个 channel ,因此在。如果 OpenCV 曾经更改 BGR2YUV
以表示 Y
转到最后一个 channel ,依此类推,那对您来说太糟糕了。
我是一名优秀的程序员,十分优秀!