OpenCV学习(5)-插值算法和旋转函数

# -*- coding: utf-8 -*-
import sys
import cv2
import numpy as np

if __name__=="__main__":
   if len(sys.argv)>1 :
      img = cv2.imread(sys.argv[1],cv2.IMREAD_ANYCOLOR)
   else:
      print('None')
   cv2.imwrite("img.jpg",img)#生成一张新图片
   h,w=img.shape[:2]#原图的高宽
   
   A1=np.array([[0.5,0,0],[0,0.5,0]],np.float32)#仿射变换矩阵,缩小两倍
   d1=cv2.warpAffine(img, A1, (w,h), cv2.INTER_LINEAR, borderValue=(255,255,255))
   #INTER_LINEAR为双线性插值,INTER_NEAREST为最近邻插值,borderValue为填充值
   
   A2=np.array([[0.5,0,w/4],[0,0.5,h/4]],np.float32)#缩小2倍,平移w/4,h/4
   d2=cv2.warpAffine(img, A2, (w,h), cv2.INTER_LINEAR, borderValue=(255,255,255))
   
   A3=cv2.getRotationMatrix2D((w/2,h/2),30,0.5)#以(w/2,h/2)为中心逆时针旋转20度
   d3=cv2.warpAffine(img, A3, (w,h), flags=cv2.INTER_LINEAR, borderValue=(255,255,255))
   
   cv2.imshow("image",img)
   cv2.imshow("d1",d1)
   cv2.imshow("d2",d2)
   cv2.imshow("d3",d3)
   
   #旋转函数rotate
   rimg=cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)
   #ROTATE_90_CLOCKWISE:顺时针旋转90度;ROTATE_180:顺时针旋转180度;ROTATE_90_COUNTERCLOCKWISE:顺时针旋转270度
   cv2.imshow("rimg",rimg)
   
   cv2.waitKey(0)
   cv2.destroyAllWindows()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值