Opencv3.0-python的那些事儿:(三)、Opencv的图像处理中的几何变换

# *-* coding: utf-8 *-*

import cv2
import numpy as np
from matplotlib import pyplot as plt

'''
第14章:几何变换
14。1扩展缩放
    扩展缩放只是改变图像的尺寸大小。cv2.resize()可以实现该功能,图像的尺寸可以手动设置,可以指定
    缩放因子。可以选择使用不同的差值方法。
    缩放时可用cv2.INTER_AREA,扩展时使用cv2.INTER_CUBIC(慢),cv2.INTER_LINEAR
    默认改变图像尺寸大小的插值方法都是cv2.INTER_LINEAR

    插值:图像放大时,像素也增加,增加过程就是“插值”程序自动选择信息较好的像素作为增加的像素,放大
    图像时,图像看上去平滑。

    常见插值方法:
    参见csdn这篇文章:http://blog.csdn.net/coy_wang/article/details/5027872
    1最邻近元法
    无需计算,将距离待求像素最近的邻像素灰度付给待求像素。设i+u,j+v为待求像素坐标,则
    待求像素灰度的值f(i+u,j+v)是
    u < 0.5,v < 0.5时为(i,j)....
    出现锯齿,计算量小

    2双线性内插法
    利用待求像素四个邻像素的灰度在两个方向上做线性内插
    对于(i,j+v),f(i,j)到f(i,j+1)的灰度变化为线性关系,则有:
    f(i,j+v) = [ f(i, j+1) - f(i,j) ] * v + f(i,j)
    例如
    f(i,j+1) = [ f(i,j+1) - f(i,j)] * 2 + f(i,j)
    对于(i+1 , j+v)则有
    f(i+1 , j+v) = [ f(i+1,j+1) - f(i+1,j) ] * v + f(i+1,j)
    从f(i,j+v)到f(i+1,j+v)的灰度变化也为线性关系
    f(i+u,j+v) = [ f(i+1,j+v) - f(i,j+v) ] * u + f(i,j+v)
              =  [ ( [ f(i+1,j+1) - f(i+1,j) ] * v + f(i+1,j) ) - ( [ f(i, j+1) - f(i,j) ] * v + f(i,j) ) ] * u +
                 [ f(i, j+1) - f(i,j) ] * v + f(i,j)
              = ...
    本质:利用相邻像素值求取任意增加x或y后像素值对应的线性的灰度值,连续使用两次求得任意位置处的像素的灰度值
    特点:计算量大,但没有灰度不连续的缺点
    具有低通滤波特点(低频信号通过,超过设定临界值的高频信号则被阻隔,用于数据平滑,图像模糊等)

    3三次内插法
    利用三次多项式S(x)求逼近
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值