18.opencv 图像变换

1.基本变换——缩放

import cv2
import numpy as np

dog = cv2.imread('./dog.jpeg')
cat = cv2.imread('./cat.jpeg')

print(dog.shape)
print(cat.shape)

new_cat = cv2.resize(cat, (499, 360))
print(new_cat.shape)

cv2.imshow('img', np.hstack((dog, new_cat)))

cv2.waitKey()
cv2.destroyAllWindows()
(360, 499, 3)
(480, 640, 3)
(360, 499, 3)

(1)shape是行、列、深度,而cv2.resize是宽、高。故需要修改顺序。

(2)可以修改插值算法,默认是双线性插值

resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])

  • src: 要缩放的图片
  • dsize: 缩放之后的图片大小, 元组和列表表示均可.
  • dst: 可选参数, 缩放之后的输出图片
  • fx, fy: x轴和y轴的缩放比, 即宽度和高度的缩放比.
  • interpolation: 插值算法, 主要有以下几种:
    • INTER_NEAREST, 邻近插值, 速度快, 效果差.
    • INTER_LINEAR, 双线性插值, 使用原图中的4个点进行插值. 默认.
    • INTER_CUBIC, 三次插值, 原图中的16个点.
    • INTER_AREA, 区域插值, 效果最好, 计算时间最长。

(3)可以通过xy轴(fx fy)比例缩放图片

import cv2
import numpy as np

dog = cv2.imread('./dog.jpeg')
cat = cv2.imread('./cat.jpeg')


# new_dog1 = cv2.resize(dog, (640, 480), interpolation=cv2.INTER_NEAREST)
# new_dog2 = cv2.resize(dog, (640, 480), interpolation=cv2.INTER_LINEAR)# 默认效果
# new_dog3 = cv2.resize(dog, (640, 480), interpolation=cv2.INTER_CUBIC)
# new_dog4 = cv2.resize(dog, (640, 480), interpolation=cv2.INTER_AREA)

new_dog = cv2.resize(dog, dsize=None, fx=1.5, fy=0.5, interpol
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值