24 กันยายน 2558

Published กันยายน 24, 2558 by with 3 comments

จับคู่รูปภาพด้วย OpenCV กับ Python

สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่านไปจับคู่รูปภาพด้วย OpenCV กับภาษาไพทอนกันครับ


คำสั่งของ OpenCV ที่ใช้ในบทความนี้


ผมมีไฟล์ดังนี้
100_9097.png

เป็นไฟล์ต้นฉบับ ผมต้องการแค่ป้ายตลาด

ผมเลยทำการตัดบันทึกเป็นไฟล์ชื่อ 2.PNG
เป็นไฟล์แม่แบบ

โค้ด

import cv2

pic = cv2.imread('100_9097.png') # ภาพต้นฉบับ
template = cv2.imread('2.PNG',0) # แม่แบบ
image = cv2.cvtColor(pic, cv2.COLOR_BGR2GRAY) # ทำการแปลงสี
result = cv2.matchTemplate(image,template,cv2.TM_CCORR_NORMED) # ทำการจับคู่รูปภาพ

minVal,maxVal,minLoc,maxLoc = cv2.minMaxLoc(result) # รับค่าตำแหน่งสูงสุดกับต่ำสุดของวัตถุ result
loc = maxLoc
w, h = template.shape[::-1]
toploc = (loc[0] + w, loc[1] + h)

cv2.rectangle(pic,loc,toploc,(0,0,255),3) # ทำกรอบรูปภาพที่คล้ายกับแม่แบบ
cv2.imshow("Result", pic)
cv2.waitKey(0)

ผลลัพธ์






ทำการจับคู่รูปภาพด้วย OpenCV กับ Python ที่มีวัตถุหลายอัน


ในกรณีมีวัตถุที่คล้ายกันมากกว่า 1 หากต้องการจับคู่กับวัตถุเหล่านั้น สามารถศึกษาได้จากโค้ดต่อไปนี้
ไฟล์ภาพ lab2.png (ต้นฉบับ)


ไฟล์ lab21.png (แม่แบบ)  
โค้ด

ผลลัพธ์

จับคู่รูปภาพด้วย opencv กับ python

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

3 ความคิดเห็น:

  1. อยากทราบว่า
    ภาพต้นฉบับต้องเก็บไว้ในโฟลเดอร์ไหนครับ

    ตอบลบ
  2. อยากทราบว่าไฟล์ภาพต้องเก็บไว้ในโฟล์เดอร์ไหนครับ

    ตอบลบ
  3. ถ้าใช้เป็นกล้องเว็บแคมแบบ เรียลไทม์ได้ไหมครับ ?

    ตอบลบ

แสดงความคิดเห็นได้ครับ :)