用python給女朋友照片加上個性相框,學會等著她誇你!
阿新 • • 發佈:2020-08-29
講解下如何給女朋友照片加上個性相框,學會讓她誇你。
。
素材1
相框
你的女朋友圖
程式碼
import cv2 import numpy as np def get_four_points(im): data = {} data['im'] = im.copy() data['points'] = [] cv2.namedWindow("Image", 0) cv2.imshow('Image',im) #請注意你標記點的資料,是順時針,需要與pst_src 方向一致 cv2.setMouseCallback("Image",mouse_handler,data) cv2.waitKey(0) #豎直方向堆疊起來; points = np.vstack(data['points']).astype(float) return points #---第4步:主函式--- def main(): #美女照片讀取,注意路徑 img_src = cv2.imread("meinv.jpg") size = img_src.shape # 取得四個座標 ##需要注意一點,座標 Pick 點的順序須與記錄替換影象頂點順序一致,否則轉換圖會有偏差 pst_src = np.array( [ [0,0],[size[1]-1,0], [size[1]-1,size[0]-1], [0,size[0]-1] ],dtype=float ) #大圖:相框,注意路徑 img_dst = cv2.imread("xiangkuang.jpg") print("點選bllboard的四個角,然後回車")#獲取四個點 four_point = get_four_points(img_dst) #Calculate Homography between source and destination points #計算源點和目標點之間的單應性 h,status = cv2.findHomography(pst_src,four_point) #透視變換(單應性) im_temp = cv2.warpPerspective(img_src,h,(img_dst.shape[1],img_dst.shape[0])) cv2.fillConvexPoly(img_dst,four_point.astype(int),0,16) #照片疊加 img_dst = img_dst + im_temp cv2.namedWindow("Image", 0) cv2.imshow("Image",img_dst) cv2.imwrite('Image.png',img_dst)#照片儲存 cv2.waitKey(0) #---第5步:呼叫main函式--- if __name__ =='__main__': main()
效果展示
描繪啦四個點後,點選enter 就可以啦
得到的圖
當然也可以隨意描點
哈哈哈哈 非常簡單 有沒有 獲取原始碼打包工具加群哈:1136192749