آموزش پردازش تصویر در پایتون – جلسه 12: الگویابی

0
633
آموزش پردازش تصویر در پایتون – جلسه 12: الگویابی

در قسمت یازدهم از مجموعه آموزشی پردازش تصویر در پایتون، در رابطه با تشخیص لبه‌ها صحبت کردیم و عملیات لبه‌یابی را با الگوریتم‌ها و متدهای مختلفی بر روی ویدئویی که از وبکم ضبط کردیم تست کردیم و در نهایت به نمایش گذاشتیم. در این قسمت قصد داریم در مورد الگویابی صحیت کنیم. در ادامه این موضوع را بیشتر تشریح خواهیم کرد.

الگویابی

الگویابی که در  اینجا مدنظر ما است یعنی اینکه یک الگوی خاص را در یک تصویر تشخیص بدهیم. برای این کار ما دو عکس کوچک و بزرگ در نظر می‌گیریم. عکس کوچک چندین بار در عکس بزرگ تکرار شده است و ما باید تشخیص بدهیم که در کجای عکس بزرگ این الگو تکرار شده است. در ادامه ما کدی خواهیم نوشت که سکه‌های که در بازی سوپر ماریو وجود دارد را تشخیص بدهد. پس نتیجه الگویابی می‌شود پیدا کرد سکه‌ها که همان عکس کوچک می‌شود در عکس بزرگ‌تر. به این نکته توجه داشته باشید که با توجه به میزان آستانه‌ای که ما تعیین می‌کنیم، این تشخیص می‌تواند متفاوت باشد.

 

import cv2
import numpy as np

img_bgr = cv2.imread('mario.jpg')
img_gray = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2GRAY)

img_template = cv2.imread('coin.jpg', 0)
w, h = img_template.shape[::-1]

res = cv2.matchTemplate(img_gray, img_template, cv2.TM_CCOEFF_NORMED)
threshhold = 0.6

loc = np.where(res >= threshhold)

for pt in zip(*loc[::-1]):
cv2.rectangle(img_bgr, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 1)

cv2.imshow('coin', img_bgr)

cv2.waitKey(0)

 

پس از اینکه برنامه‌ی بالا را اجرا کردیم، خروجی برنامه به صورت زیر خواهد بود و سکه‌ها دقیا تشخیص داده خواهند شد.

الگویابی
بازی سوپر ماریو

این مقاله برگرفته از آموزش ویدئویی زیر می‌باشد، برای مشاهده‌ی جزئیات بیشتر حتما این ویدئو را مشاهده بفرمائید.

 

 

منبع:سیسوگ

مطلب قبلیملخ سایبورگ میتواند بمب و مواد منفجره را تشخیص دهد!
مطلب بعدیآرایه‌ها در VHDL

پاسخ دهید

لطفا نظر خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید