我正在关注this tutorial进行角点检测,我必须使用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
所以,我安装了libgtk2.0-dev和pkg-config,但它没有解决问题。错误消息说运行cmake但在哪里?我的驱动器中没有CMakeLists.txt文件。
然后,我在这个网站上关注一些答案,如this one:首先,我直接在网站上下载了OpenCV,然后运行cmake,make和make install。一切都没问题,但是当我使用Anaconda时仍然有同样的错误但是当我从/ usr / bin / python打开Python时它又收到了另一条消息:
init done
opengl support available
目前,我无法展示我的形象。我该怎么办?
答案 0 :(得分:2)
在我的问题中,我有两个问题:
从/ usr / lib / python,我无法显示图像,但我没有 有错误;
使用Anaconda Framework,函数imshow没有实现。
对于第一个问题,这很容易,因为我没有正确阅读文档。它说,关于cv2.waitKey()
函数:
除了绑定键盘事件外,此功能还可以处理许多事件 其他GUI事件,所以你必须用它来实际显示图像。
所以,我只需要在cv.imshow()之后调用cv2.waitKey(1)来显示图像。
对于第二问题,
我用手动方法来解决它(我不确定它是最好的但它有效)。我用libopencv*
文件夹中的/home/user/anaconda3/lib
文件替换了libopencv*
文件夹中的所有/usr/local/lib/
个文件。
之后,我不得不更新`/home/user/anaconda3/lib/libstdc++.so'文件与&#39; / usr / lib / i386-linux-gnu / libstdc ++。所以&#39;文件
还有一个更清洁的替代方案,但您应该重新启动安装过程来执行此操作。当您运行cmake
命令时,参数-D CMAKE_INSTALL_PREFIX
必须引用您的anaconda文件夹(对我而言,它是/home/pierre/anaconda3/
)。之后,您只需像往常一样继续安装:
make
sudo make install
现在,您可以将OpenCV与Anacaonda一起使用(但仅限于Anaconda;如果您加载/usr/bin/python
,它就不起作用。)
答案 1 :(得分:0)
使用以下命令从conda环境中使用cv2
安装pip
:
pip install opencv-python
pip
提供的轮子不包含此错误。