opencv python 4 基本变换

来源:互联网 发布:java写的桌面程序 编辑:程序博客网 时间:2024/06/11 00:44

opencv python 4 基本变换

改变色彩空间

cv2.cvtColor()

第1个参数为输入图像,第2个参数为转换方式。

import cv2img = cv2.imread('a.jpg')img_cvt = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)cv2.imshow('image', img_cvt)cv2.waitKey()

输出为转换得到的灰度图像。

opencv提供了超过150种色彩空间转换方法:

f = [i for i in dir(cv2) if i.startswith('COLOR_')]print(f)

输出为所有转换方式。

改变大小

cv2.resize()

第1个参数为输入图像,第2个参数为转换后的大小,参数interpolation为变换方式,包括:

img = cv2.imread('a.jpg')height, width = img.shape[:2]res = cv2.resize(img, (2 * width, 2 * height), interpolation = cv2.INTER_CUBIC)cv2.imshow('image', res)cv2.waitKey()

输出为2倍大小的图像。

也可不直接设定转换后的大小而是通过设定fx和fy参数来设置转换的倍数。

res = cv2.resize(img, None, fx = 2, fy = 2, interpolation = cv2.INTER_CUBIC)

图像旋转

对图像进行旋转操作首先要使用cv2.getRotationMatrix2D()计算旋转矩阵。
第1个参数为中心点,第2个参数为旋转角度,第3个参数为缩放倍数。

获取旋转矩阵后再使用cv2.warpAffine()进行仿射变换。
第1个参数为输入图像,第2个参数为变换矩阵,第3个参数为输出图像大小。

img = cv2.imread('a.jpg', 0)h, w = img.shapeM = cv2.getRotationMatrix2D((w / 2, h / 2), 90, 1)dst = cv2.warpAffine(img, M, (w, h))cv2.imshow('img', dst)cv2.waitKey()