【发布时间】:2011-02-15 11:16:05
【问题描述】:
我想使用 opencv 库中的边缘检测算法。 这是一段python代码:
from opencv.cv import *
from opencv.highgui import *
img = cvLoadImage ('xxx.jpg')
cvNamedWindow ('img')
cvShowImage ('img', img)
cvWaitKey ()
canny = cvCreateImage (cvSize (img.width, img.height), 8, 3)
cvCanny (img, canny, 50, 200)
harris = cvCreateImage (cvSize (img.width, img.height), 8, 3)
cvCornerHarris (img, harris, 5, 5, 0.1)
加载和显示图像工作正常,但 canny 和 harris 转换失败。cvCanny 失败并显示:
RuntimeError: openCV Error:
Status=Unsupported format or combination of formats
function name=cvCanny
error message=
file_name=cv/cvcanny.cpp
line=72
并且cvCornerHarris 失败并出现此错误:
RuntimeError: openCV Error:
Status=Assertion failed
function name=cvCornerHarris
error message=src.size() == dst.size() && dst.type() == CV_32FC1
file_name=cv/cvcorner.cpp
line=370
从这条消息中,我可以推断出加载的图像格式无效。但我不明白如何转换它。
以下是一些img 字段的值:
img.type = 1111638032
img.nChannels = 3
img.depth = 8
【问题讨论】:
-
您使用的是什么版本的 API?您的代码似乎与旧 API 一致,可能会让新用户感到困惑:您应该使用“import cv”等。如果您愿意,我很乐意翻译您的代码
-
@meduz,它是 python-opencv_2.0.0-3ubuntu2。我是从 Ubuntu 10.04 存储库安装的。
标签: python image-processing opencv