open-CV旋转不发生裁剪,interval 表示python区间

python中如何确定一个区间,利用interval中的Intervl,可以得到一个区间,左闭右开;
表示区间,可以用于判定一些值是否落在了区间
open-CV强大的图片处理工具,但是bug也不少,安装模块不顺利,pip与conda安装都不顺利,可能还得自己去官网下载包,然后导入site-package里面就好。最近需要实现旋转,但是会发生裁剪,于是网上百度了大佬的,特此记录:(cv2打开图片的路径与一般的不一样,为"/",否则会报错)
import cv2
import math
def solu_image(path,name):
image=cv2.imread(path+"//"+name)
h,w=image.shape[:2]
deg=np.arange(45,405,45)#随机旋转一定的角度45的整数倍
degree=random.choice(deg)
heightNew=int(wabs(math.sin(math.radians(degree)))+habs(math.cos(math.radians(degree))))
widthNew=int(habs(math.sin(math.radians(degree)))+wabs(math.cos(math.radians(degree))))
matRotation=cv2.getRotationMatrix2D((w/2,h/2),degree,1)
matRotation[0,2] +=(widthNew-w)/2 #重新调整新图片的(x,y)
matRotation[1,2] +=(heightNew-h)/2
imgRotation=cv2.warpAffine(image,matRotation,(widthNew,heightNew),borderValue=(255,255,255))
path1=path+"//"+“crop.jpg”
cv2.imwrite(path1,imgRotation)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值