Python_opencv图像插值

本文介绍了图像插值的三种常见方法:最近邻插值、双线性插值和三次样条插值。最近邻插值在放大图像时会导致块状效应;双线性插值通过四点加权平均实现更平滑的缩放;在Python中,使用OpenCV库可以方便地实现这些插值技术,并通过示例展示了双线性插值在图像缩放中的应用。
摘要由CSDN通过智能技术生成

1 图像插值

# 常见的图像插值 :最近邻插值, 双线性插值, 三次样条插值
# 最近邻插值  ---> 目标图像点对应到源图中, 距离最近的点作为插值点
#           --->  放大图像时,出现块状效应

# 双线性插值  ---> 线性插值  已知(x0,y0), (x1,y1) x在两点间的直线y的值
#                         x和x0,x1的距离作为一个权重,用于y0和y1的加权
#           ---> 核心 四个点 x方向两次线性插值, y方向进行一次线性插值


# Python
import cv2

def show(img):
    print("The current input image shape is", img.shape)
    cv2.imshow("images", img)
    cv2.waitKey()
    cv2.destroyAllWindows()

if __name__ == "__main__":

    img = cv2.imread("girl.jpg",1)
    h, w, c = img.shape
    print("orial image shape is", img.shape)
    resize_rate = 0.3
    # resize(原图, 缩放后图像, x方向缩放因子,y方向缩放因子, 缩放方式(默认双线性插值))
    img_resize = cv2.resize(img, (int(resize_rate * w), int(resize_rate * h)), interpolation=cv2.INTER_LINEAR)
    fx = 1.5
    fy = 1.5
    img_resize1 = cv2.resize(img, dsize=None, fx = fx, fy = fy, interpolation=cv2.INTER_NEAREST)
    img_resize2 = cv2.resize(img, dsize=None, fx = fx, fy = fy, interpolation=cv2.INTER_LINEAR)


    show(img_resize2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值