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

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

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

در این قسمت ما علاوه بر کتاب‌خانه‌های 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()

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

 

تشخیص الگوهای مشابه

 

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

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

 

 

منبع : سیسوگ

برای این مقاله نظر بگذارید:

لطفا دیدگاه خود را بنویسید
لطفا نام خود را وارد کنید