14 图像插值
代码
import cv2 as cv
src = cv.imread("../image/coins.jpg")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)
h, w = src.shape[:2]
print(h, w)
dst = cv.resize(src, (w*2, h*2), fx=0.75, fy=0.75, interpolation=cv.INTER_NEAREST)
cv.imshow("INTER_NEAREST", dst)
dst = cv.resize(src, (w*2, h*2), interpolation=cv.INTER_LINEAR)
cv.imshow("INTER_LINEAR", dst)
dst = cv.resize(src, (w*2, h*2), interpolation=cv.INTER_CUBIC)
cv.imshow("INTER_CUBIC", dst)
dst = cv.resize(src, (w*2, h*2), interpolation=cv.INTER_LANCZOS4)
cv.imshow("INTER_LANCZOS4", dst)
cv.waitKey(0)
cv.destroyAllWindows()
实验结果
原图

最邻近插值

双线性插值

双立方插值

Lanczos插值

解释
最常见四种插值算法
INTER_NEAREST = 0
INTER_LINEAR = 1
INTER_CUBIC = 2
INTER_LANCZOS4 = 4
相关的应用场景
几何变换、透视变换、插值计算新像素
函数:cv.resize(src,dsize,dst,fx,fy,interpositionn),
如果dsize有值,使用dsize做放缩插值,否则根据fx与fy卷积。
所有内容均来源于贾志刚老师的知识星球——OpenCV研习社,本文为个人整理学习,已获得贾老师授权,有兴趣、有能力的可以加入贾老师的知识星球进行深入学习。

本文通过使用OpenCV库,详细介绍了四种常见的图像插值算法:最邻近插值、双线性插值、双立方插值和Lanczos插值。通过代码实现,展示了不同插值方法对图像缩放效果的影响。
299

被折叠的 条评论
为什么被折叠?



