آموزش پردازش تصویر در پایتون – قسمت چهاردهم

آموزش پردازش تصویر در پایتون – قسمت چهاردهم

قسمت چهاردهم : تشخیص الگوهای مشابه

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

در این قسمت ما علاوه بر کتاب‌خانه‌های OpenCV و numpy از کتاب‌خانه‌ی matplot نیز استفاده خواهیم کرد.

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

برنامه ما به صورت زیر است:

import cv2
import numpy as np
import matplotlib.pyplot as plt 

img_template = cv2.imread('p2.jpg', 0)
img = cv2.imread('p1.jpg', 0)

orb = cv2.ORB_create()

kp1, des1 = orb.detectAndCompute(img_template, None)
kp2, des2 = orb.detectAndCompute(img, None)

bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck = True)

matches = bf.match(des1, des2)
matches = sorted(matches, key=lambda x: x.distance)

img_out = cv2.drawMatches(img, kp2, img_template, kp1
                            matches[:10], None, flags=2)

plt.imshow(img_out)
plt.show()

پس از اینکه برنامه‌ی بالا را اجرا کردیم خروجی زیر به ما نمایش داده می‌شود:

همانطور که در تصویر بالا مشاهده می‌کنید بخش‌های مشابه دو تصویر با خطوطی رنگی به هم ربط داده شده‌اند. چون در این تصویر نوشته وجود داشت به خوبی تشخیص داده شد.

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

درباره نویسنده

نویسنده و طراح الکترونیکا هستم . سوالی داشتید در کامنت ها یا پیج های اینستاگرام و تلگرام سایت بپرسید .