一,安装
进入虚拟环境,键入
继续键入
当然,你也可以使用conda来进行安装
至此,opencv的安装过程结束 。
二,图像的基本处理
1.图像的读取,显示,保存
(1)读取
cv2.imread()方法
import cv2
img = cv2.imread(src,type)
在入门篇中,type除灰度转换以外一般不涉及。
好了,语法我们已经了解了,接下来我们来看看实际使用:
import cv2
import numpy as np
import matplotlib.pyplot as plt
if __name__ == '__main__':
img = cv2.imread('street.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('street',img)
cv2.waitKey(0)
上述代码中就是基本的图像读取与展示,cv2.imshow()是展示图片的方法,必须填入两个参数:图片标题和图片。
cv2.waitKey(0)的用处可以简单理解为一个死循环来维持图片存在,直到键入任意键才会退出循环,如果不加这条语句,图片只会暂存一会。
(2)显示
cv2.imshow()
(3)保存
cv2.imwrite()
2.图像本质
import cv2
import numpy as np
import matplotlib.pyplot as plt
if __name__ == '__main__':
img = cv2.imread('street.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('street',img)
print(img)
cv2.waitKey(0)
图像本身由许多像素点组成,而这些像素点又可以理解为介于0-255之间的值,所以一幅500x500的图像可以认为是由500x500的二维数组,当然这仅限与黑白照片,一幅彩色照片由三个颜色通道(r,g,b)组成,相当于三副500x500的图像叠在一起。
当了解图像本质是多维数组后,图片的裁剪,旋转,过滤等后续操作本质就是对数组进行一个数学过程。
(1)截取图片
上面我们已经谈到图片本质是多维数组(mxnx3),既然这样截取图片本质也就是对数组进行切片。
import cv2
import numpy as np
import matplotlib.pyplot as plt
if __name__ == '__main__':
#截取图片
img = cv2.imread('street.jpg')
clipped_img = img[0:200,0:200]
cv2.imshow('street_clipped',clipped_img)
cv2.waitKey(0)
如此,我们截取到了左上角200x200的一块区域。
(2)提取颜色通道
import cv2
import numpy as np
import matplotlib.pyplot as plt
if __name__ == '__main__':
img = cv2.imread('street.jpg')
b,g,r = cv2.split(img)
print("b:")
print(b)
print("g:")
print(g)
print("r:")
print(r)
与上文相符,b,g,r三个颜色通道简单来讲就是三个二维数组。
3.杂项
(1)waitKey函数
目前基本使用waitKey(0),方便我们的测试。
(2)destroyWindow函数
(3)destroyAllWindows函数