【问题标题】:Missing functions in opencv 3.0 for python/PyCharmpython/PyCharm的opencv 3.0中缺少函数
【发布时间】:2017-02-28 17:15:41
【问题描述】:

这是一个完全 NOOB 的问题;我已经下载了 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 的一部分。即,这不会运行/编译:

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

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

使用

print( dir(cv2) )

我可以看到 Laplacian 是模块的一部分,但不知何故我无法访问它,即 python 看不到它。我确实将 PyCharm 的 DYLD_LIBRARY_PATH 设置为所有 opencv 的 .dylibs 的位置......我错过/可以检查的任何内容?

很抱歉这个含糊的问题,但我还是被这只动物困住了。

【问题讨论】:

    标签: python opencv python-3.4


    【解决方案1】:

    我建议使用 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。

    【讨论】:

    • 感谢您的链接。它只显示 Windows,我在 OS X 上(忘记提及并更新了我的原始帖子)。你认为我有什么潜在的问题,lib 到 lib 的依赖关系?
    猜你喜欢
    • 1970-01-01
    • 2015-03-27
    • 2015-11-27
    • 2023-03-19
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    • 2023-03-16
    相关资源
    最近更新 更多