opencv-python安装很简单。使用pip安装即可,注意,最好安装3.4.1.15版本一下,因为后续版本的有的算法申请的专利,用不了。并且安装opencv-contrib-python,这个库具有相关的算法。
pip install opencv-python == 3.4.1.15 opencv-contrib-python 3.4.1.15
opencv使用非常简单。
import cv2 as cv
img = cv.imread("图片路径")
imread(filename, flags=None)方法返回的是一个numpy数组。其中numpy数组中的row为图片的高度,col为图片的宽度。其中flags中有常用的读取彩色图、灰度图等等。彩色图像是-1,也是默认的读取方式,灰度图为0。
首先,灰度图的numpy数组为二维数组。分为表示高和宽。
import cv2 as cv
import numpy as np
img = cv.imread('../image/lena.jpg',0)
print(img[:10,:10])
'''
[[160 159 159 162 165 160 156 158 154 158]
[162 161 159 160 162 160 157 158 154 158]
[161 162 160 159 160 159 156 156 154 157]
[157 160 159 157 159 159 155 153 153 156]
[154 157 157 155 157 158 155 153 154 156]
[154 156 155 153 155 156 155 155 156 157]
[156 157 155 153 155 155 154 156 156 157]
[157 157 156 156 157 155 153 155 155 156]
[157 155 153 154 156 157 156 155 154 153]
[156 156 155 154 154 155 156 157 158 156]]
'''
其次,彩色图像的输出为三维数组,分别表示高和宽和bgr。
import cv2 as cv
import numpy as np
img = cv.imread('../image/lena.jpg',1)
print(img[:5,:5])
'''[[[126 134 223]
[125 133 222]
[124 133 223]
[125 136 226]
[128 139 229]]
[[127 137 225]
[126 135 225]
[122 133 223]
[123 134 224]
[123 137 226]]
[[124 135 225]
[125 136 226]
[121 135 224]
[118 134 223]
[119 134 226]]
[[116 132 221]
[119 134 226]
[116 134 225]
[114 132 223]
[115 134 225]]
[[110 129 220]
[113 132 223]
[113 132 223]
[109 130 222]
[109 132 224]]]
'''
其中以[110 129 220]为例,110表示B,129表示G,220表示R。
用imshow(winname, mat)展示即可,这是一个cv库自带的展示方法。这个方法可以展示你所需要的图片。其中winnanme是选择父容器,即选择展示窗口;mat是需要展示图片的numpy数组。
但是,用了这个方法之后你会发现图片展示一秒就没了。这是因为你没有waitKey(delay=None)。其中delay是图片刷新时间。
import cv2 as cv
img = cv.imread('../image/lena.jpg',1)
cv.imshow('window',img) # window是展示窗口
cv.waitKey(0) # 不进行刷新