python/PyCharm的opencv 3.0中缺少的函数



这是一个完全的新手问题;我已经下载了OpenCV 3.0.0 (https://github.com/Itseez/opencv/archive/3.0.0.zip)并为python 3.4编译了这个。(顺便说一句,我在OSX上)我正在使用PyCharm的库,并在图像上使用Sobel过滤器进行简单测试,似乎运行良好:

gradX = cv2.Sobel( myImage, ddepth = cv2.CV_32F, dx=1, dy=0, ksize=-1 )

然而,当我按照一些在线示例尝试应用拉普拉斯过滤器时,我发现拉普拉斯函数不是(我编译的)opencv的一部分。也就是说,这不会运行/compile:

laplacian = cv2.Laplacian( image, cv2.CV_32F)

似乎我也缺少其他定义(例如,找不到cv2.CV_64F),所以在某个地方,我一定是搞砸了。查看成堆的编译器输出,我找不到任何导致我掉下悬崖的地方。

使用

print( dir(cv2) )

我可以看到Laplacian是模块的一部分,但不知为何我无法访问它,也就是说,python看不到它。我确实设置了PyCharm的DYLD_LIBRARY_PATH到所有opencv的。dylibs…有什么我遗漏的/需要检查的吗?

很抱歉这个模糊的问题,但我对这个动物相当着迷。

我建议使用wheel文件从pip安装。从这里下载wheel文件:

http://www.lfd.uci.edu/gohlke pythonlibs/# opencv

应该照顾你的依赖关系,并帮助你解决编译问题。

所以Windows不是问题:)

我怀疑你是对的。我没有Mac电脑,所以我没法复制。为了消除PyCharm是罪魁祸首,您可以启动终端并运行您的代码吗?我的意思是做下面的步骤(如果它在Mac上不起作用,请原谅我,但在Linux上我是这样检查的)。如果它运行,那么在您的PyCharm设置中有些东西不太正确。如果它不能在终端上工作,那么它可能是一个lib依赖问题。

Linux终端:

/home/user/:~$ python3
>>import opencv as cv2
>>gradX = cv2.Sobel( myImage, ddepth = cv2.CV_32F, dx=1, dy=0, ksize=-1 )
>>laplacian = cv2.Laplacian( image, cv2.CV_32F)

可能需要对代码进行调整才能使其在Mac上工作。

相关内容

  • 没有找到相关文章

最新更新