这是一个总的NOOB问题;我已经下载了OpenCV 3.0.0(https://github.com/Itseez/opencv/archive/3.0.0.zip)并为python 3.4编译了这个。 (我在OSX btw上)我正在使用PyCharm中的库,并且在图像上使用Sobel滤镜进行简单测试似乎运行良好:
gradX = cv2.Sobel( myImage, ddepth = cv2.CV_32F, dx=1, dy=0, ksize=-1 )
然而,当我尝试在一些在线示例之后应用拉普拉斯滤波器时,我发现拉普拉斯函数不是(我编译的)opencv的一部分。即,这不会运行/编译:
laplacian = cv2.Laplacian( image, cv2.CV_32F)
似乎我也错过了其他定义(例如,找不到cv2.CV_64F)所以沿着这条线我必须搞砸了。纵观成堆的编译器输出,我找不到任何导致我离开悬崖的地方。
使用
print( dir(cv2) )
我可以看到Laplacian是模块的一部分但不知何故我无法访问它,即python没有看到它。我确实将PyCharm的DYLD_LIBRARY_PATH设置为所有opencv的.dylibs ...我错过/可以查看的任何内容?
对于这个含糊不清的问题感到抱歉,但我对这种动物很不满意。
答案 0 :(得分:0)
我建议使用wheel文件从pip安装。从这里下载车轮文件:
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。