opencv的读写非常简单,主要用到的就是imread和imwrite两个函数
读取图片示例
import cv2 #imread(filename[, flags]) -> retval imgPath = 'E:/test01.jpg' #图片路径 #默认读取的是RGB三色图,得到三维矩阵 img = cv2.imread(imgPath) #等价于img = cv2.imread('test01.jpg',cv2.IMREAD_COLOR) #查看图像维数(719,1280,3) print(img.shape) #如果选择以灰度模式读入图像,得到二维矩阵 img0 = cv2.imread(imgPath, 0) #等价于img = cv2.imread('test01.jpg',cv2.IMREAD_GRAYSCALE) #查看图像维数(719,1280) print(img0.shape)
PS:使用imread读取图片时,如果图片路程错误,opencv不会报Error,图片矩阵img=None
写图片示例
import cv2 #imwrite(filename, img[, params]) -> retval imgPath = 'E:/test01.jpg' #图片的写入路径 #图片写入 cv2.imwrite(filename, img) #第三个参数针对特定的格式: imgPath = 'E:/test01.jpg' cv2.imwrite(imgPath, img, [int(cv2.IMWRITE_JPEG_QUALITY),100]) #对于JPEG,其表示的是图像的质量。 #用0-100的整数表示,数值越高质量越高,默认为95。 imgPath = 'E:/test01.png' cv2.imwrite(imgPath, img, [int(cv2.IMWRITE_PNG_COMPRESSION),9]) #对于PNG,第三个参数表示的是压缩级别。 #从0到9,压缩级别越高,图像尺寸越小,默认级别为3。 #注意,cv2.IMWRITE_JPEG_QUALITY和cv2.IMWRITE_PNG_COMPRESSION类型为Long,必须转换成int。
参考链接:
http://blog.csdn.net/eddy_zheng/article/details/48286735
http://blog.csdn.net/sunny2038/article/details/9057415