【数字图像处理】图像内插“双三次内插法 双三次插值 Bicubic interpolation”(cv2.resize、cv.INTER_CUBIC)

文章目录

    • 基本原理
    • 代码

【数字图像处理】图像内插“双三次内插法 双三次插值 Bicubic interpolation”(cv2.resize、cv.INTER_CUBIC)_第1张图片
引用自:《数字图像处理》

基本原理

【数字图像处理】图像内插“双三次内插法 双三次插值 Bicubic interpolation”(cv2.resize、cv.INTER_CUBIC)_第2张图片
引用自:https://baike.baidu.com/item/%E5%8F%8C%E4%B8%89%E6%AC%A1%E6%8F%92%E5%80%BC/11055947?fr=aladdin

双三次插值考虑的是周围16个像素的像素值,其权重因子的计算比较复杂。常用BiCubic插值原理。

BiCubic插值原理简介:

双三次插值又称立方卷积插值。三次卷积插值是一种更加复杂的插值方式。该算法利用待采样点周围16个点的灰度值作三次插值,不仅考虑到4 个直接相邻点的灰度影响,而且考虑到各邻点间灰度值变化率的影响。三次运算可以得到更接近高分辨率图像的放大效果,但也导致了运算量的急剧增加。这种算法需要选取插值基函数来拟合数据,其最常用的插值基函数如图1所示,本次实验采用如图所示函数作为基函数。
【数字图像处理】图像内插“双三次内插法 双三次插值 Bicubic interpolation”(cv2.resize、cv.INTER_CUBIC)_第3张图片

引用自:图像放大并进行BiCubic插值 Matlab/C++代码

不想去造轮子,太蛋疼了,ԾㅂԾ,,直接调用opencv的函数吧

代码

# -*- coding: utf-8 -*-
"""
@File    : 双三次内插法.py
@Time    : 2020/6/29 16:55
@Author  : Dontla
@Email   : [email protected]
@Software: PyCharm
"""
import cv2 as cv


def BCI(img, resolution):
    return cv.resize(img, (resolution[1], resolution[0]), interpolation=cv.INTER_CUBIC)


img = cv.imread('cat.jpg')
# print(img.shape)  # (600, 800, 3)
resolution = 300, 400
img_ = BCI(img, resolution)
cv.imshow('win1', img)
cv.imshow('win2', img_)
cv.waitKey(0)


调用opencv也太快了吧!!!几乎瞬间完成了。。。。这给热爱造轮子的我又是一个沉重的打击(。_。)

参考文章1:双三次插值算法(bicubic interpolation)与图形学和计算方法的关系

参考文章2:python3实现bicubic(双三次插值)重建四倍放大图像

参考文章3:opencv库实现图像最近邻、双线性、双三次插值

参考文章4“:图像插值算法总结

你可能感兴趣的:(图像处理)