图片的几何变换

1.图片的缩放

 1 load 2 info 3 resize 4 check

#1 放大  缩小  2等比例缩放 非等比例缩放

# 1 info 2 空白模板 3 xy
import cv2
import numpy as np 
img=cv2.imread('image0.jpg',1)
imgInfo=img.shape
height=imgInfo[0]
width=imgInfo[1]
dstHeight=int(height*0.5)
dstWidth=int(width*0.5)
#dst=cv2.resize(img,(dstWidth,dstHeight))
#cv2.imshow('image1',dst)
dstImage=np.zeros((dstHeight,dstWidth,3),np.uint8) #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)

#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
#newY=y*(src列/目标 列)newY=2*(20/10)=4
#12.3=12

双线性插值


#A1=20%*上+80%*下  A2
#B1=30%*左+70%*右  B2
#1 最终点=A1 30% +A2 70%

#2 最终点=B1 20% +B2 80%


2.图片剪切

#100 -》200 x
#100-》300 y
import cv2
img = cv2.imread('image0.jpg',1)
imgInfo = img.shape
dst = img[100:200,100:300]
cv2.imshow('image',dst)
cv2.waitKey(0)

猜你喜欢

转载自blog.csdn.net/qq_25366173/article/details/80223111