【OpenCV】图片缩放

import cv2
img = cv2.imread('G:/1.jpg',1)
imgInfo = img.shape
print(imgInfo)
height = imgInfo[0]
width = imgInfo[1]
mode = imgInfo[2]

dstHeight = int(height*0.5)
dstWidth = int(width*0.5)

#最近临域插值 双线性插值 像素关系重采样 立方差值
dst  = cv2.resize(img,(dstWidth,dstHeight))
cv2.imshow('image',dst)
cv2.waitKey(0)
#最近临域插值 双线性插值 原理
#src 10*20  dst 5*10
#dst<-src
#(1,2) <- (2,4)
#dst x 1 -> src x 2 newX
#newX = x*(src 行/目标 行) newX = 1*(10/5) = 2
#newX = x*(src 列/目标 列) newX = 2*(20/10) = 4

#双线性插值
#A1 = 20% 上 +80% 下  A2
#B1 = 30% 上 +80% 下 B2


#info  
#空白模板
#重新计算XY
import cv2
import numpy as np
img = cv2.imread('G:/1.jpg',1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
mode = imgInfo[2]
dstHeight = int(height/2)
dstWidth = int (width/2)
dstImage = np.zeros((dstHeight,dstWidth,3),np.uint8)#0-255
for i in range(0,dstHeight):
    for j in range(0,dstWidth):
        iNew = int(i*(height*1.0/dstHeight))
        jNew = int(j*(width*1.0/dstWidth))
        dstImage[i,j] = img[iNew,jNew]
cv2.imshow('dst',dstImage)
cv2.waitKey(0)

#opencv API resize
#算法原理
#自己的源码形式
 

猜你喜欢

转载自blog.csdn.net/weixin_40874586/article/details/81433077