作者:allenn2012 | 来源:互联网 | 2023-09-10 10:31
Iwanttouseedgedetectionalgorithmsfromopencvlibrary.Hereisapieceofpythoncode:我想使用ope
I want to use edge detection algorithms from opencv library. Here is a piece of python code:
我想使用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)
Loading and showing image works fine, but canny and harris transformations fail.
cvCanny
fails with:
加载和显示图像工作正常,但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
and cvCornerHarris
fails with this error:
和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
From this messages I can infer that loaded image has invalid format. But I don't understand how to convert it.
Here are values of some img
fields:
从这些消息我可以推断出加载的图像格式无效。但我不明白如何转换它。以下是一些img字段的值:
img.type = 1111638032
img.nChannels = 3
img.depth = 8
3 个解决方案