opencv 3 cv2.imshow()仅显示窗口栏

时间:2017-06-27 12:14:12

标签: python macos opencv

我只是想知道是否有人解决了这个问题。我已阅读所有帖子但未找到答案。问题是:有一个python简单代码

 mediaStream.Seek(0, SeekOrigin.Begin);
 await mediaStream.CopyToAsync(fileStream);

当我运行它时,我只看到一个窗口标题栏,下面没有任何内容。但框架不断更新,我可以在终端上看到img.mean()打印输出。由于我设置了cv2.WINDOW_NORMAL,我可以抓住窗口角并拖动它,我看到帧内容,但此时帧停止更新。当我释放窗口角时,窗口会折叠并且帧会再次开始更新。

如果我使用任何其他图像显示功能,例如dlib.image_window()在我的情况下一切正常。

我使用opencv 3.2.0-dev从MacOS上的opencv_contrib和python 2.7.13源代码编译

"INSERT IGNORE" vs "INSERT ... ON DUPLICATE KEY UPDATE"

问题解决了

解决方案是:在文件opencv / modules / highgui / src / window_cocoa.mm中更改

import cv2

cam = cv2.VideoCapture(0)

cv2.namedWindow('test', cv2.WINDOW_NORMAL)

while True:
    ret, img = cam.read()
    if ret:
        print img.mean()
        cv2.imshow('test', img)

    cv2.waitKey(1)

@implementation CVView
#if defined(__LP64__)
@synthesize image;
#else // 32-bit Obj-C does not have automatic synthesize
@synthesize image = _image;
#endif

解释是Screenshot

@DanMašek,感谢您的评论让我的生活更轻松。

0 个答案:

没有答案