计算机视觉加强之几何变换

本篇笔记的运行环境为:windows下配置好opencv3.1.0和tensorflow1.2.1环境的python3.5.4编辑器pycharm。(ps:没用到tensorflow所以可以忽略)

1. 图片缩放

即改变图片的高度与宽度
1.加载 2.获取图片信息 3.调用resize方法改变大小 4.检查改变的结果
图片缩放的形式可以分为:放大,缩小
根据图片缩放的比例,可以分为等比例和非等比例
非等比例缩放:宽高比与原图片不一致
opencv中提供的四种常见图片缩放方法:
1.最近邻域插值 2.双线性插值 3.像素关系重采样 4.立方插值
默认情况下使用双线性插值。

# 1 load  2.info  3.resize  4.check
import cv2 #导入opencv
img = cv2.imread("image0.jpg",1) #imread方法参数:图片的名称 1表示获取彩色图片
#cv2.imshow('image0',img)
imginfo = img.shape #图片的宽度,高度以及图片的颜色组成方式,返回值是一个元组
#print(imginfo)
height = imginfo[0] #获取当前图片的高度
width = imginfo[1] #获取当前图片的宽度
mode = imginfo[2] #图片的颜色组成方式
#  1 放大 缩小  2  等比例,非等比例   2:3
dstHeight = int(height*0.5) #目标的高度信息,并转化成int类型
dstWidth = int(width*0.5) #目标的宽度信息,并转化成int类型
# 最近邻域插值  双线性插值  像素关系重采样  立方插值
dst = cv2.resize(img,(dstWidth,dstHeight)) #定义最终生成的图片
                            # resize方法参数:原始图片的名称,最终我们要生成的图片的宽度,高度信息

cv2.imshow('image',dst) #imshow参数:显示窗口的名称 将要打开的图片名称
cv2.waitKey(0)

最近邻域插值法和双线性插值法的原理和实现
最近邻域插值法:
原图像大小为1020,目标图像的大小为510
原图像上的(2,4)->目标图像上的(1,2)
dst x 1 ->src x 2 newX
newX = x*(src 行/目标 行)newX=1*(10/5)=2
newY = y*(src 列/目标 列) newY = 2*(20/10)=4
若计算结果不是整数,那么取最靠近的那个整数为结果 12.3->12
双线性插值法:
在这里插入图片描述
操作流程:先将目标点在水平方向上投影:黄线与蓝线交于两点A1,A2;
然后将目标点在竖直方向上投影:绿线与蓝线相较于两点B1,B2;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值