繁体   English   中英

Python OpenCV 3.2 imshow()没有带有waitKey(0)的图像内容!

[英]Python OpenCV 3.2 imshow() no image content with waitKey(0)!

我从此安装指南中安装了OpenCV3.2 + python3.6.1。 (对于我输入的指南中所需的路径:


编辑 :我不确定,但是我想我应该在3.6而不是3.6.1下安装opencv,请不要使用我的安装路径!


/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/)

我的测试代码与OpenCV 3.2文档的教程完全相同,但是输出屏幕仅显示标题:

import numpy as np
import cv2

img = cv2.imread('1.jpg',0)
cv2.imshow('image', img)
cv2.waitKey(0)

结果:

OpenCV空图像窗口 如图所示,图像内容丢失。

似乎与我的python有关,图标已损坏:

破碎的python图标

请帮我! 我只想在我的学校项目中使用opencv ...


如果您遇到相同的问题,我可以解决您的问题。 但是,在执行任何其他步骤之前,您应该先看一下:

  1. 我建议您首先从Mac中删除 OpenCV 3.2。

    不知道怎么丢人? 步骤如下:

    1. 如果您想了解以下命令的详细信息,请先阅读此答案 ,然后在终端中运行以下命令:

       $> sudo find / -name "*opencv*" -exec rm -i {} \\; 
    2. 请仔细阅读每条删除检查消息,否则您可能会删除一些文件名中包含“ opencv”的文件,这些文件可能与OpenCV不相关,但可能是您的个人文件。

    3. 您的cv2.so仍将保留在磁盘中的某个位置,请在终端中使用以下命令检出它所在的位置:

       $> ls -l /usr/local/lib/python3.6/site-packages/ 

      就我而言,我在.../python3.6/...处找到了cv2.so,您应该在/usr/local/lib/python按'tab',然后查看每个python版本的site-packages文件夹( ,也许您将要重新安装OpenCV,)以搜索cv2.so。 如果找到它,将其删除。

  2. 使用适用于Python2.7 / 3.6的Homebrew安装OpenCV3.2 只需执行所有步骤,并记住Homebrew是您最好的朋友。

    编辑:该链接适用于Python2.7和3.6。

我遇到了类似的问题,但从C ++ API角度来看。 学分给马特米妮

窗口自动调整大小不适用于使用可可的macOS。 找不到窗口的图像尺寸。 已通过删除window_cocoa.mm中特定于IP64的合成来解决此问题,该合成导致cvShowImage中窗口的contentView image属性的空引用(图像引用未链接到_image)。

简而言之,OpenCV尝试支持32位和64位ObjC编译器,但是由于Apple不再支持32位,因此某些图像合成操作导致64位计算机中的空引用。 更多资讯

要解决此问题,请找到文件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;

CVWindowCVSlider实现也执行相同的CVWindow以容纳视频。

重新编译OpenCV并测试您的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM