解决:
error Traceback (most recent call last)
<ipython-input-2-0bd8b2a9cff9> in <module>()
3 import numpy as np
4 img = cv2.imread("/1.jpg", cv2.IMREAD_GRAYSCALE)
----> 5 cv2.imshow("image", img)
6 #cv2.waitKey(0)
7 #cv2.destroyAllWindows()
error: /io/opencv/modules/highgui/src/window.cpp:304: error: (-215) size.width>0 && size.height>0 in function imshow
cv2.imshow("Canvas", canvas)
cv2.error: OpenCV(3.4.1) /opt/conda/conda-bld/opencv-suite_1530789967746/work/modules/highgui/src/window.cpp:636: 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
重要问题是:
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
果断的解决问题是:正确安装下列软件:
1.opencv3.2.0
2.opencv-python3.2.0
1.opencv3.2.0
(1) 从官网(http://opencv.org/downloads.html)下载Opencv,并将其解压到你要安装的位置,假设解压到了/home/opencv。
unzip opencv-3.2.0.zip
sudo cp ./opencv-3.2.0 /home/username
sudo mv opencv-3.2.0 opencv
(2) 安装前准备,创建编译文件夹
cd ~/opencv
mkdir build
cd build
(3) 配置
sudo apt install cmake
sudo cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
(4) 编译
sudo make -j8 (-j8表示并行计算,根据自己电脑的配置进行设置,配置比较低的电脑可以将数字改小或不使用,直接输make)
(5) 安装
以上只是将opencv编译成功,还没将opencv安装,需要运行下面指令进行安装:
sudo make install
查看opencv版本
pkg-config --modversion opencv
【3.2.0】
2.opencv-python
(1) conda install -c https://conda.anaconda.org/menpo opencv3
3.测试opencv可用
import cv2
img = cv2.imread('banner.jpg')
cv2.imshow('w', img)
cv2.waitKey(0)
4.opencv与python之间图像的读入与显示
(1)读入图像\显示图像以及保存图像
import cv2
img=cv2.imread('child.jpg',cv2.IMREAD_COLOR)
cv2.namedWindow('child',cv2.WINDOW_AUTOSIZE)
cv2.imshow('lena',img)
k=cv2.waitKey(0)
if k==27:
cv2.destroyAllWindows()
plt.close()
elif k==ord('s'):
cv2.imwrite('lenagray.png',img)
cv2.destroyAllWindows()
(2)matplotlib显示图像
import cv2
from matplotlib import pyplot as plt
img=cv2.imread('lena.jpg',cv2.IMREAD_COLOR)
plt.imshow(img)
plt.show()
注意:opencv的像素是BGR顺序,然而matplotlib所遵循的是RGB顺序。