当前位置 博文首页 > 无水wangyang:【OpenCV】图片缩放

    无水wangyang:【OpenCV】图片缩放

    作者:[db:作者] 时间:2021-09-06 13:31

    ?

    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
    #算法原理
    #自己的源码形式
     

    ?

    cs