Python中的cv2使用
模块 cv2 的用法 - 陨落&新生 - 博客园 (cnblogs.com)
Python-OpenCV 基本操作 cv2 - 菜鸟程序猿_python - 博客园 (cnblogs.com)
常用方法
读取图像
cv2.imread(filepath,flags)
-
filepath:要读入图片的完整路径
-
flags:读入图片的标志
-
- cv2.IMREAD_COLOR:默认参数(3),读入一副彩色图片,忽略 alpha 通道
- cv2.IMREAD_GRAYSCALE:读入灰度图片
- cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括 alpha 通道
写入图像
cv2.imwrite(filepath, img, flags)
- filepath: 要保存图像的文件名
- img: 要保存的图像
- flags: 可选的第三个参数,它针对特定的格式:对于 JPEG,其表示的是图像的质量,用 0 - 100 的整数表示,默认 95;对于 png ,第三个参数表示的是压缩级别。默认为 3.
cv2.IMWRITE_JPEG_QUALITY 类型为 long ,必须转换成 int
cv2.IMWRITE_PNG_COMPRESSION, 从 0 到 9 压缩级别越高图像越小。
cv2.imwrite('1.png',img, [int(cv2.IMWRITE_JPEG_QUALITY), 95])
cv2.imwrite('1.png',img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])
显示图像
演示代码如下
import cv2
img = cv2.imread('temp.jpg')
cv2.imwrite('save.jpg', img)
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindow()
img 的一些属性
img.shape # (1200, 1920, 3) 宽、高、通道数
img.size # 像素个数
img.dtype # uint8
颜色转化
由于 cv2 得到的图片是 BGR 格式,而非传统的 RGB 格式,因此需要进行转化。
有以下三种方法
im_bgr = cv2.imread('temp.jpg')
im_rgb = im_bgr[:, :, [2, 1, 0]]
im_rgb = im_bgr[:, :, ::-1]
im_rgb = cv2.cvtColor(im_bgr, cv2.COLOR_BGR2RGB)
还有一些颜色空间转化
#彩色图像转为灰度图像
img2 = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
#灰度图像转为彩色图像
img3 = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB)
# cv2.COLOR_X2Y,其中X,Y = RGB, BGR, GRAY, HSV, YCrCb, XYZ, Lab, Luv, HLS