OpenCV中图片的缩放、翻转、旋转

1.图片缩放

        图片缩放用到cv2.resize(img,dst,dsize,fx,fy,interpolation) ,其中img为缩放的图像,dsize为我们要缩放的目标尺寸,fx和fy分别为X轴和Y轴的缩放因子,interpolation为缩放时采用的插值算法,我们使用默认的就好。

         dst为输出的缩放图像, 对于python而言我们可 直接用=赋值变量, 因此dst可以默认不写。

同时注意我们通过指定dsize缩放时可以不用fx,fy;而用fx,fy时可以不指定dsize,两者同时指定的话会默认使用dsize进行缩放。

指定dsize或指定fx,fy进行缩放:

import cv2
import numpy as np

img=cv2.imread(r"E:\DOCUMENTS\hello.png")
print(img.shape)  #(299,411,3) 


#使用 fx,fy 将原图像 缩小为原来的0.8倍
new1=cv2.resize(img,None,fx=0.8,fy=0.8,interpolation=cv2.INTER_AREA)

#通过dsize放大图像
new2=cv2.resize(img,(500,340))

cv2.imshow('img',img)
cv2.imshow('new1',new1)
cv2.imshow('new2',new2)
cv2.waitKey(0)

缩放结果如下:

2.图片翻转

        用到cv2.flip(img,flipcode)函数,其中img为我们要翻转的图像,flipCode=0会 上下翻转, >0时左右  翻转,<0上下加左右翻转。

        代码以及结果图如下:

import cv2
import numpy as np

img=cv2.imread(r"E:\DOCUMENTS\opencv-master\opencv\MachineLearning\th.jpg")
#左右翻转
new=cv2.flip(img,0)
#上下翻转
new1=cv2.flip(img,1)
#上下左右翻转
new2=cv2.flip(img,-1)

cv2.imshow('img',img)
cv2.imshow('new',new)
cv2.imshow('new1',new1)
cv2.imshow('new2',new2)
cv2.waitKey(0)

3.图片旋转(该方式只能旋转90度整数倍)

如果要想实现任意角度的旋转请看我后面即将会发布的文章。

        这里旋转用到cv2.  rotate(img,rotateCode),img为旋转的图像,rotataCode为旋转的方式。这里注意该方式只能旋转 90度整数倍。

        其中ROTATE_180、ROTATE_90_CLOCKWISE、ROTATE_90_COUNTERCLOCKWISE分别为旋转180度,顺时针旋转90度,逆时针旋转90度。

import cv2

import numpy as np

img=cv2.imread(r"E:\DOCUMENTS\opencv-master\opencv\MachineLearning\th.jpg")

new=cv2.rotate(img,cv2.ROTATE_180)  #180度

# new=cv2.rotate(img,cv2.ROTATE_90_CLOCKWISE) #顺时针90度 

# new=cv2.rotate(img,cv2.ROTATE_90_COUNTERCLOCKWISE) #逆时针90度 


cv2.imshow('img',img)
cv2.imshow('new',new)

cv2.waitKey(0)

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值