我收到以下错误:
cv.error: Incorrect number of channels for this conversion code
来自以下代码:
cv.CvtColor(frame, gray, cv.CV_BGR2GRAY)
任何建议?
答案 0 :(得分:2)
检查frame
和gray
的频道数量。要么使用调试器,要么在转换之前放置此行:
printf("frame.nChannels: %d gray.nChannels: %d\n", frame.nChannels, gray.nChannels);
frame
需要3个频道(RGB)。 gray
需要为1个频道。除此以外的任何内容和转换都将失败。在这种情况下:
frame
作为第二个参数传递给cv.CV_LOAD_IMAGE_COLOR
,则可以强制cv.LoadImage
将始终作为RGB加载文件gray
时,您指定它只有1个频道,例如gray=cv.CreateImage(cv.GetSize(frame), frame.depth, 1)
查看OpenCV API各个功能以获取更多信息。关于Python的部分是第3章,但由于Python包装器只是重用底层C代码,所以第一部分也是相关的。
答案 1 :(得分:0)
看起来frame
不是RGB图像,是吗?