python图像的读取,保存,复制操作:https://blog.csdn.net/qq_40962368/article/details/80444144
python中实现图像旋转的代码如下(亲测,可执行)
#coding=utf-8
import cv2
import numpy as np
img=cv2.imread('cat.jpg')
print(img.shape)
rows,cols,channel=img.shape
M=cv2.getRotationMatrix2D(((cols-1)/2.0,(rows-1)/2.0),180,1)
dst=cv2.warpAffine(img,M,(cols,rows))
#仿射变换其三个参数分别为:输入图像,变换矩阵,输出图像大小
cv2.imshow('img',img)
cv2.imshow('dst',dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
2. 关于getRotationMatrix2D()函数解释入下:
cv2.getRotationMarix2D(point2f center,double angle,double scale)
参数分别为:旋转中心,旋转角度,图像缩放因子
3. 关于warpAffine()函数解释如下:
官方参数: cv2.
warpAffine
(src, M, dsize, dst, flags, borderMode, borderValue)
其中, src:输入图像
M:变换矩阵 (反映平移或者旋转的关系)
dsize:输出图像的大小
flags:插值方式(默认为flags=cv2.INTER_LINEAR,表示线性插值,,此外还有cv2.INTER_NEAREST(最近邻插值),_CUBIC(三次样条插值)等等)
borderMode:边界像素模式
borderValue: 边界填充值(输入类似为(255,255,255)这样形式的三个值,默认情况下它是黑色0)
注意:平时使用的时候,在只设置前三个参数的情况下,可以实现基本的放射变换效果.但是会出现有黑边情况. 因为最后一个参数默认是黑色,可以根据图片自己调整边界填充颜色. python中的函数变量可以不按照顺序设置.
如:cv2.warpAffine(img,M,(length,length),borderValue=(255,255,255))