参考:https://blog.csdn.net/lovexlsforever/article/details/79508602
cv2.resize函数 當我們縮小影像時,使用CV_INTER_AREA會有比較好的效果,當我們放大影像,CV_INTER_CUBIC會有最好的效果
void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR) 。src 输入图 。dst 输出图,形态和输入图相同,当dsize不等于0,输出图尺寸会和dsize相同,当dsize等于0,输出图尺寸会由输入图尺寸、fx、fy计算而得 。dsize 输出尺寸,当输入为0时,fx、fy皆不可为0,dsize = Size(round(fxsrc.cols),round(fysrc.rows)) 。fx 水平缩放比例,当输入为0时,fx=(double)dsize.width/src.cols 。fy 垂直缩放比例,当输入为0时,fy=(double)dsize.height/src.rows 。interpolation 内插方式 内插方式有 a). CV_INTER_NEAREST 最邻近插值点法 b). CV_INTER_LINEAR 双线性插值法 c).CV_INTER_AREA 邻域像素再取样插补 d).CV_INTER_CUBIC 双立方插补,4*4大小的补点 e). 當我們縮小影像時,使用CV_INTER_AREA會有比較好的效果,當我們放大影像,CV_INTER_CUBIC會有最好的效果,但是計算花費時間較多,CV_INTER_LINEAR能在影像品質和花費時間上取得不錯的平衡。 CV_INTER_LANCZOS4 Lanczos插补,8*8大小的补点 ''' @time:2020/10/05 @interplation methods ''' import cv2 as cv img = cv.imread('pic2.png') h,w,j = img.shape resizeh,resizew = h*10,w*10 #最近邻内插,注意得先写图像的宽,再写图像的高 interNearest = cv.resize(img,(resizew,resizeh),interpolation=cv.INTER_NEAREST) #双线性内插 interLinear = cv.resize(img,(resizew,resizeh),interpolation=cv.INTER_LINEAR) #双三次内插 interCubic = cv.resize(img,(resizew,resizeh),interpolation=cv.INTER_CUBIC) cv.imshow('1',interNearest) cv.imshow("2",interLinear) cv.imshow("3",interCubic) cv.imwrite('pic2_1.jpg',interNearest) cv.imwrite('pic2_2.jpg',interLinear) cv.imwrite('pic2_3.jpg',interCubic) cv.waitKey(0)