OpenCV圖像相似度檢測,Python實現

OpenCV圖像相似度檢測,簡單的說是大圖中找小圖,以圖找圖。

假設把大圖

 

中的一部分圖Android小機器人檢測出來

並用紅色的線框出來。

# OpenCV圖像相似度檢測matchTemplate,Python實現
import cv2 as cv

if __name__ == "__main__":
    # 先把圖片灰度處理。
    img = cv.imread('pic.jpg')
    img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

    template = cv.imread('t.jpg')
    template_gray = cv.cvtColor(template, cv.COLOR_BGR2GRAY)
    h, w = template.shape[:2]

    # 匹配
    result = cv.matchTemplate(img_gray, template_gray, cv.TM_CCOEFF_NORMED)

    min_val, max_val, min_loc, max_loc = cv.minMaxLoc(result)
    print(max_val)
    print(min_val)

    # max_loc爲左上角
    # 右下角
    right_bottom = (max_loc[0] + w, max_loc[1] + h)

    # 畫矩形,紅色的線框出來。
    cv.rectangle(img=img, pt1=max_loc, pt2=right_bottom, color=(0, 0, 255), thickness=3)

    cv.imshow('result', img)
    cv.waitKey(0)
    cv.destroyAllWindows()

運行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章