前言:
此刻我们对“双线性插值图像放大缩小算法”大体比较注重,小伙伴们都需要分析一些“双线性插值图像放大缩小算法”的相关内容。那么小编在网摘上汇集了一些对于“双线性插值图像放大缩小算法””的相关知识,希望你们能喜欢,你们一起来学习一下吧!知识点
图像插值(Image Interpolation)
最常见四种插值算法
INTER_NEAREST=0
INTER_LINEAR=1
INTER_CUBIC=2
INTER_LANCZ0S4=4
相关的应用场景
几何变换、透视变换、插值计算新像素
resize,如果size有值,使用size做放缩插值,否则根据fx与fy卷积
扩展与缩放
扩展缩放只是改变图像的尺寸大小。
OpenCV 提供的函数cv2.resize()可以实现这个功能。图像的尺寸可以自己手动设置,你也可以指定缩放因子。我们可以选择使用不同的插值方法。在缩放时我们推荐使用cv2.INTER_AREA,在扩展时我们推荐使用v2.INTER_CUBIC(慢) 和v2.INTER_LINEAR。默认情况下所有改变图像尺寸大小的操作使用的插值方法都是cv2.INTER_LINEAR。你可以使用下面任意一种方法改变图像的尺寸:
import cv2 as cvsrc = cv.imread("../code_014/HappyFish.jpg")cv.namedWindow("input", cv.WINDOW_AUTOSIZE)cv.imshow("input", src)h, w = src.shape[:2] #读取图像的高宽print(h, w) #打印显示# 图像的插值缩放 fx,fy是指缩放因子# 插值算法:# interpolation : INTER_NEAREST(最近邻插值)dst = cv.resize(src, (w*2, h*2), fx=0.75, fy=0.75, interpolation=cv.INTER_NEAREST)cv.imshow("INTER_NEAREST", dst)#interpolation: INTER_LINEAR (双线性插值)dst = cv.resize(src, (w*2, h*2), interpolation=cv.INTER_LINEAR)cv.imshow("INTER_LINEAR", dst)#interpolation : INTER_CUBIC (三次样条插值:4*4像素邻域内的双立方插值)dst = cv.resize(src, (w*2, h*2), interpolation=cv.INTER_CUBIC)cv.imshow("INTER_CUBIC", dst)#interpolation: INTER_LANCZOS4 (8*8像素邻域内的Lanczos)dst = cv.resize(src, (w*2, h*2), interpolation=cv.INTER_LANCZOS4)cv.imshow("INTER_LANCZOS4", dst)#INTERPOLATION : INTER_AREA (区域插值)dst = cv.resize(src, (w*2, h*2), interpolation=cv.INTER_AREA)cv.imshow("INTER_AREA", dst)cv.waitKey(0)cv.destroyAllWindows()
关于这几种插值算法的详细代码实现与解释
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #双线性插值图像放大缩小算法 #c语言三次样条插值 #cubic插值 #差值扩展算法的书