【Opencv】cv2.resize()

其实cv2.resize最关键的点就是宽高,要区分到底哪个是宽哪个是高?

下面代码中height,width = img.shape[:2],shape得到的高宽,其实就是行列;

下面代码中cv2.resize(img,(2*width,2*height)),这个当中是使用的宽高,这里一定要注意。

1.简介:

cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)

scr:原图

dsize:输出图像尺寸

fx:沿水平轴的比例因子

fy:沿垂直轴的比例因子

interpolation:插值方法

interpolation 选项 所用的插值方法
INTER_NEAREST 最近邻插值
INTER_LINEAR  双线性插值(默认设置)
INTER_AREA 使用像素区域关系进行重采样。 它可能是图像抽取的首选方法,因为它会产生无云纹理的结果。 但是当图像缩放时,它类似于INTER_NEAREST方法。
INTER_CUBIC  4x4像素邻域的双三次插值
INTER_LANCZOS4 8x8像素邻域的Lanczos插值


 2.代码实现:

import cv2
import numpy as np
 
img = cv2.imread('McGrady.jpg')
 
#方法一:
# res = cv2.resize(img,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC)  #比例因子:fx=2,fy=2
 
# 方法二:
##print(img.shape)         #输出为(450,600,3)
##print(img.shape[:2])   #输出为(450,600)
height,width = img.shape[:2]  #获取原图像的水平方向尺寸和垂直方向尺寸。
res = cv2.resize(img,(2*width,2*height),interpolation=cv2.INTER_CUBIC)   #dsize=(2*width,2*height)
 
while(1):
    cv2.imshow('res',res)
    cv2.imshow('img',img)
 
    if cv2.waitKey(1) & 0XFF ==27:
        break
 
cv2.destroyWindow()

转自:https://blog.csdn.net/william_hehe/article/details/79604082

你可能感兴趣的:(Opencv)