4.2 Opencv Python基本使用
读取并显示图像
- 需要了解: NumPy对数组矩阵的操作 处理的图片为:
1.在使用Opencv for python之前需要导入库:
import cv2
2.读取并显示图像
过程:
1.从路径读取图片(目前python支持的图片格式有:bmp、jpg、png、tif);
2.创建一个窗口;
3.在窗口显示读取的图片;
4.使用opencv中的waitkey(0)暂停
5.最后“毁”数据----释放窗口
其代码:
import cv2
img = cv2.imread("G:\\python project\\cat.jpg") #路径读取图像
cv2.namedWindow("Image") #创建窗口
cv2.imshow("Image", img) #显示图像
cv2.waitKey (0) #暂停
cv2.destroyAllWindows() #“释放窗口
运行结果:
创建复制图像以及保存图像
- 创建图像 需要用到Numpy函数进行 :
emptyImage = np.zeros(img.shape, np.uint8)
- 复制图像
直接:
emptyImage2 = img.copy();
间接:
emptyImage3=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
间接因为其转换了成灰色图像
- 保存图像
cv2.imwrite("G:\\python project\\cat_copy.jpg", img)
imwrite()有三个参数,如例子:
cv2.imwrite("G:\\python project\\testcat\\cat2.jpg", img, [int(cv2.IMWRITE_JPEG_QUALITY), 5])
cv2.imwrite("G:\\python project\\testcat\\cat3.jpg", img, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
cv2.imwrite("G:\\python project\\testcat\\cat.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])
cv2.imwrite("G:\\python project\\testcat\\cat2.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])
imwrite()第三个参数是针对图像特定格式,如JPEG、PNG
1.对于JPEG,其表示的是图像的质量,用0-100的整数表示,默认为95。 注意,cv2.IMWRITE\_JPEG\_QUALITY类型为Long,必须转换成int
2.对于PNG,第三个参数表示的是压缩级别。cv2.IMWRITE\_PNG\_COMPRESSION,从0到9,压缩级别越高,图像尺寸越小。默认级别为3
完整代码:
import cv2
import numpy as np
img = cv2.imread("./cat.jpg")
emptyImage = np.zeros(img.shape, np.uint8)
emptyImage2 = img.copy()
emptyImage3=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#emptyImage3[...]=0
cv2.imshow("EmptyImage", emptyImage)
cv2.imshow("Image", img)
cv2.imshow("EmptyImage2", emptyImage2)
cv2.imshow("EmptyImage3", emptyImage3)
cv2.imwrite("G:\\python project\\testcat\\cat2.jpg", img, [int(cv2.IMWRITE_JPEG_QUALITY), 5])
cv2.imwrite("G:\\python project\\testcat\\cat3.jpg", img, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
cv2.imwrite("G:\\python project\\testcat\\cat.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])
cv2.imwrite("G:\\python project\\testcat\\cat2.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])
cv2.waitKey (0)
cv2.destroyAllWindows()
运行结果:
找到路径,查看保存的图像:原创自:http://blog.csdn.net/sunny2038/article/details/9057415(作者:sunny2038)