概述
opencv python 4 基本变换
改变色彩空间
cv2.cvtColor()函数可以将图像在各个色彩空间之间变换,如RGB,BGR,灰度图像,YUV,HSV等。
dst = cv2.cvtColor(src, code[, dst[, dstCn]])
- dst:输出图像
- src:输入图像
- code:转换方式
- dstCn:输出图像通道数,默认为0,根据输入图像和转换方式自动生成
import cv2
img = 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()函数对图像作制定的大小变换。
dst = cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
- dst:输出图像
- src:输入图像
- dsize:输出图像大小,若为0则根据fx,fy进行变换
- fx:相对于原图像的x方向缩放倍数
- fy:相对于原图像的y方向缩放位数
- 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()
也可不直接设定转换后的大小而是通过设定fx和fy参数来设置转换的倍数。
res = cv2.resize(img, None, fx = 2, fy = 2, interpolation = cv2.INTER_CUBIC)
图像旋转
对图像进行旋转操作首先要使用cv2.getRotationMatrix2D()计算旋转矩阵。
retval = cv2.getRotationMatrix2D(center, angle, scale)
- center:中心点
- angle:旋转角度
- scale:缩放倍数
获取旋转矩阵后再使用cv2.warpAffine()进行仿射变换。
dst = cv2.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]])
- dst:输出图像
- src:输入图像
- M:2x3的变换矩阵
- dsize:输出图像大小
- flags:插值方式,默认为线性插值INTER_LINEAR
- borderMode:设定边界的方式,默认为BORDER_CONSTANT
- borderValue:若设定边界为常量的取值,默认为0
img = cv2.imread('a.jpg')
h, w = img.shape[:2]
M = cv2.getRotationMatrix2D((w / 2, h / 2), 90, 1)
dst = cv2.warpAffine(img, M, (w, h))
cv2.imshow('img', dst)
cv2.waitKey()
最后
以上就是包容摩托为你收集整理的opencv python 4 基本变换opencv python 4 基本变换的全部内容,希望文章能够帮你解决opencv python 4 基本变换opencv python 4 基本变换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复