GreyScale翻译问题

时间:2011-01-29 22:48:05

标签: python image-processing opencv image-manipulation

我收到以下错误:

cv.error: Incorrect number of channels for this conversion code

来自以下代码:

cv.CvtColor(frame, gray, cv.CV_BGR2GRAY)

任何建议?

2 个答案:

答案 0 :(得分:2)

检查framegray的频道数量。要么使用调试器,要么在转换之前放置此行:

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图像,是吗?