Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用cv2.imshow时出错(未指定错误)_Python_Opencv_Anaconda - Fatal编程技术网

Python 使用cv2.imshow时出错(未指定错误)

Python 使用cv2.imshow时出错(未指定错误),python,opencv,anaconda,Python,Opencv,Anaconda,我跟随做角点检测,我必须使用cv2.imshow。这是我的密码: import cv2 import numpy as np filename = '1.jpg' img = cv2.imread(filename) gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) gray = np.float32(gray) dst = cv2.cornerHarris(gray,2,3,0.04) #result is dilated for marking t

我跟随做角点检测,我必须使用cv2.imshow。这是我的密码:

import cv2
import numpy as np

filename = '1.jpg'
img = cv2.imread(filename)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

gray = np.float32(gray)
dst = cv2.cornerHarris(gray,2,3,0.04)

#result is dilated for marking the corners, not important
dst = cv2.dilate(dst,None)

# Threshold for an optimal value, it may vary depending on the image.
img[dst>0.01*dst.max()]=[0,0,255]

cv2.imshow('dst',img)
我得到了这个错误:

OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvShowImage, file /root/mc-x86-2.7/conda-bld/opencv-3_1482254836916/work/opencv-3.1.0/modules/highgui/src/window.cpp, line 545
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
cv2.error: /root/mc-x86-2.7/conda-bld/opencv-3_1482254836916/work/opencv-3.1.0/modules/highgui/src/window.cpp:545: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvShowImage

目前,我无法展示我的形象。我必须做什么?

在我的问题中,我有两个问题:

  • 在/usr/lib/python中,我无法显示图像,但没有显示 有错误

  • 在Anaconda框架中,没有实现imshow功能

  • 对于第一个问题,这非常简单,因为我没有正确阅读文档。它说,关于
    cv2.waitKey()
    函数:

    除了绑定键盘事件外,此函数还处理许多 其他GUI事件,因此必须使用它来实际显示图像

    因此,我只需要在cv.imshow()之后调用cv2.waitKey(1)来显示图像

    对于第二个问题

    • 我用了一种手动方法来解决它(我不确定这是最好的,但它能工作)。我将
      /home/user/anaconda3/lib
      文件夹中的所有
      libopencv*
      文件替换为
      /usr/local/lib/
      文件夹中的
      libopencv*
      文件

    • 在那之后,我必须用'/usr/lib/i386 linux gnu/libstdc++.so'文件更新'/home/user/anaconda3/lib/libstdc++.so'文件


    还有一个更干净的替代方案,但您应该重新启动安装过程来完成。运行
    cmake
    命令时,参数
    -D cmake\u INSTALL\u PREFIX
    必须指向您的anaconda文件夹(对我来说,它是
    /home/pierre/anaconda3/
    )。之后,您只需像往常一样继续安装:

    make
    sudo make install
    

    现在,您可以将OpenCV与Anacaonda一起使用(但只能与Anaconda一起使用;如果您加载
    /usr/bin/python
    ,则它不起作用)。

    从conda环境中使用
    pip
    安装
    cv2
    ,使用以下命令:

    pip install opencv-python
    

    pip提供的控制盘不包含此错误。

    您可以使用:conda install-c opencv安装opencv。它不需要建造,我已经做过了。它不起作用;我收到了相同的错误。运行CMake时是否启用了GTK?默认情况下,它可能被禁用。您可能会发现这有助于在从源设置时设置conda:
    pip install opencv-python