我从this installation guide安装了OpenCV3.2 + python3.6.1。 (对于我输入的指南所需的路径:
修改:我不确定,但我想我应该安装3.6以下的opencv,而不是3.6.1,请不要使用我的路径进行安装!< / p>
/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/config-3.6m-darwin/libpython3.6.dylib
和
ls -d /usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/include/python3.6m/)
我的测试代码与the tutorial of OpenCV 3.2 documentation完全相同,但输出屏幕只显示标题:
import numpy as np
import cv2
img = cv2.imread('1.jpg',0)
cv2.imshow('image', img)
cv2.waitKey(0)
结果:
似乎它与我的python有关,图标坏了:
请帮帮我!我只想在我的学校项目中使用opencv ......
答案 0 :(得分:1)
如果您遇到同样的问题,我可以解决您的问题。但是在进行任何进一步的步骤之前,你应该先看一下:
我会建议你先从你的mac 删除 OpenCV 3.2。
不知道如何删除?以下是步骤:
如果您想了解以下命令的详细信息,请先阅读this answer,然后在终端中运行以下命令:
$> sudo find / -name "*opencv*" -exec rm -i {} \;
请仔细阅读每个删除检查消息,或者您可以删除包含&#34; opencv&#34;的一些文件。在文件名中,可能与OpenCV无关,但可能是您的个人文件。
你的cv2.so仍会在磁盘的某个地方存活,请在终端中使用以下命令结帐:
$> ls -l /usr/local/lib/python3.6/site-packages/
就我而言,我在.../python3.6/...
找到了cv2.so,你应该按下&#39;标签&#39;在/usr/local/lib/python
然后查看每个python版本的site-packages
文件夹(可能是您即将重新安装OpenCV),以搜索 cv2.so 。如果找到了,请将其删除。
Install OpenCV3.2 with Homebrew for Python2.7 / 3.6。只需按照所有步骤操作,请记住,Homebrew是您最好的朋友。
编辑:该链接适用于Python2.7和3.6。
答案 1 :(得分:1)
我遇到了类似的问题但是在C ++ API的角度来看。积分转到mattmyne。
使用cocoa,窗口自动调整大小不适用于macOS。找不到窗口的图像尺寸。这已经通过删除window_cocoa.mm中的IP64特定合成来修复,该合成导致cvShowImage中窗口的contentView图像属性的空引用(图像引用未链接到_image)。
简而言之,OpenCV试图支持32位和64位ObjC编译器,但由于Apple不再支持32位,因此一些图像合成操作导致64位计算机中的空引用。更多info
要解决此问题,请找到文件 window_cocoa.mm ;如果从源代码构建它将在 opencv / modules / highgui / src 中。
更改此
@implementation CVView
#if defined(__LP64__)
@synthesize image;
#else // 32-bit Obj-C does not have automatic synthesize
@synthesize image = _image;
#endif
到此
@implementation CVView
@synthesize image = _image;
为CVWindow
和CVSlider
实施做同样的事情以适应视频。
重新编译OpenCV并测试您的代码。