解决 cv2.namedWindow 报错问题

最近需要运行这样一段代码进行边缘检测:

import cv2

def nothing(x):
    pass

img = cv2.imread('0001.png', 0)

cv2.namedWindow('res')
cv2.createTrackbar('min', 'res', 0, 25, nothing)
cv2.createTrackbar('max', 'res', 0, 25, nothing)
while (1):
    if cv2.waitKey(1) & 0xFF==27:
        break
    maxVal = cv2.getTrackbarPos('max', 'res')
    minVal = cv2.getTrackbarPos('min', 'res')
    canny = cv2.Canny(img, 10 * minVal, 10 * maxVal)
    cv2.imshow('res', canny)
cv2.destroyAllWindows()

但是会报如下错误

Traceback (most recent call last):
  File "/home/test.py", line 11, in <module>
    cv2.namedWindow('res')
cv2.error: OpenCV(3.4.2) /tmp/build/80754af9/opencv-suite_1535558553474/work/modules/highgui/src/window.cpp:615: error: (-2: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 function 'cvNamedWindow'

系统是 Ubuntu 16.04,之前安装 OpenCV 是直接通过 conda install opencv安装的。这样安装的是 3.4.2 版本的 OpenCV。

下面列一些能解决这个问题的方法:

1.

conda remove opencv
pip install opencv-python

conda remove opencv
pip install opencv-contrib-python

这样安装的 OpenCV 是最新版本,可以成功运行。

2.

conda remove opencv
conda install -c conda-forge opencv=4.1.0

不加后面的 4.1.0 安装的是 3.4.2 版本,4.1.0 版本可以成功运行。

3.

conda remove opencv
conda install -c menpo opencv3

安装的是 3.1.0,可以运行,但是会有其他小问题。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值