24 กันยายน 2558

Published 9/24/2558 by with 0 comment

จับคู่รูปภาพด้วย 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

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

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

แสดงความคิดเห็น

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