1.数据读取及变换——图片
(1)数据读取:cv.imread()
·有三种读取方式:彩色模式(参数为1或cv2.IMREAD_COLOR)
灰度模式(参数为0或cv2.IMREAD_GRAYSCALE)
包括alpha通道的加载图像模式(-1或cv2.IMREAD_UNCHANGED)
注意:opencv的读取格式是BGR
(2)图像显示:cv2.inshow()
import cv2
img = cv2.imread("D:/meishaonv.jpg") #读取图像,注意图像的路径写法,路径不能带有中文
cv2.namedWindow("1") #创建一个窗口
cv2.imshow("1",img) #在此窗口中展示图象
cv2.waitKey(0) #等待时间,0表示任意键终止;如果不添加此句,图像会一闪而过
cv2.destroyAllWindows()
(3)保存图像:cv.imwrite("保存路径及文件名",图像矩阵)
其中有个可选的第三个参数:
对于JPEG:cv2.IMWRITE_JPEG_QUALITY它表示图像的质量,
用0-100表示,默认为95
对于PNG:cv2.IMWRITE_PNG_COMPRESSION表示压缩级别, 从0-9压缩级别越高,图像尺寸越小,默认为3
注意:cv2.IMWRITE_JPEG_QUALITY类型是Long,要转成int
cv2.imwrite("./cat.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])
cv2.imwrite("./cat2.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])
(4)截取部分图像数据:img=img[a:b,c:d]
a~b表示取得的高度范围,c~d表示取得的宽度范围
import cv2
img = cv2.imread("D:/meishaonv.jpg")
cat=img[0:50,0:200]
cv2.imshow("2",cat)
cv2.waitKey(0)
(5)颜色通道提取:b,g,r=cv2.split(变量名)
#拆分
b,g,r=cv2.split(img)
cv2.waitKey(0)
r.shape
#合并
img=cv2.merge((b,g,r))