Python是一種高級編程語言,常常在計算機視覺和圖像處理領域得到廣泛應用。其中一個常見的任務是查找相似圖片,可以利用Python中的圖像處理庫來實現。
import cv2 import numpy as np # 讀取圖片 img1 = cv2.imread('img1.jpg') img2 = cv2.imread('img2.jpg') # 將圖片轉換為灰度圖像 gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY) # 初始化ORB算法 orb = cv2.ORB_create() # 檢測圖片中的關鍵點并計算描述符 kp1, des1 = orb.detectAndCompute(gray1, None) kp2, des2 = orb.detectAndCompute(gray2, None) # 初始化BFMatcher算法 bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True) # 匹配兩張圖片的描述符 matches = bf.match(des1, des2) # 排序匹配結果 matches = sorted(matches, key=lambda x: x.distance) # 取前10個匹配結果 matches = matches[:10] # 顯示匹配結果 result = cv2.drawMatches(img1, kp1, img2, kp2, matches, None, flags=2) cv2.imshow('Matched', result) cv2.waitKey(0) cv2.destroyAllWindows()
以上是一個基本的相似圖片查詢的Python代碼示例。首先通過OpenCV庫讀取兩張圖片并將其轉換為灰度圖像,之后使用ORB算法檢測圖片中的關鍵點并計算描述符。接著,初始化BFMatcher算法,并使用match方法匹配兩張圖片的描述符,最后通過drawMatches方法將匹配結果顯示出來。