هاف دایروی (بینایی ماشین)

0
100
27 بهمن 1398
0
100
27 بهمن 1398

یک مشکل رایج در بینایی ماشین تعیین موقعیت، تعداد یا جهت اشیاء خاص در تصویر می باشد. به عنوان مثال مسئله می تواند تعیین جاده‌های مستقیم در تصاویر هوایی باشد. این مشکل با استفاده از تبدیل هاف برای خطوط قابل حل می باشد. اغلب اشیاء مورد علاقه شکل هایی غیر از خط دارند مثل دایره، بیضی یا هر شکل دلخواه دیگر. با وجود اینکه پیچیدگی تبدیل هاف با افزایش تعداد پارامترهای مورد نیاز برای توصیف شکل مورد نظر افزایش می یابد، تبدیل عادی و عمومی هاف می تواند روی هر نوع شکلی استفاده شود.
الگوریتم تبدیل هاف دایره ای بصورت زیر خلاصه می‌شود:

1. یافتن لبه ها
2. برای هر نقطه لبه: // تبدیل هاف شروع می شود//
3. یک دایره با مرکزیت نقطه لبه با شعاع r رسم می‌شود و در انباره تمام مختصاتی که محیط دایره از آنها عبور می کند، افزایش می یابند.
4. نقاط ماکزیمم در انباره پیدا می شود. // تبدیل هاف تمام می شود//
5. پارامترهای پیدا شده (r,a,b) مطابق با نقاط ماکزیمم پیدا شده روی تصویر اصلی مشخص می شوند

» im = imread(‘coins.png’);
» e = edge(im, ‘canny’);
» imshow(e);
» radii = 15:1:40;
» h = circle_hough(e, radii, ‘same’, ‘normalise’);
» peaks = circle_houghpeaks(h, radii, ‘nhoodxy’, 15, ‘nhoodr’, 21, ‘npeaks’, 10);
» imshow(im);
» hold on;
» for peak = peaks
» [x, y] = circlepoints(peak(3));
» plot(x+peak(1), y+peak(2), ‘g-‘);
» end
» hold off

گشترش باینری مورفولوژیکی

همانطور که از نام عملگر پیداست، این عملگر باعث گسترش نقاط 1 در تصویر می شود. در عملگر گسترش نیز از یک ماسک (نفاب، پنجره) – همانند آنچه که در “تعریف عمل فیلتر کردن” هست – استفاده می کنیم. در اینجا به جای ماسک به آن عنصر ساختمانی می گوییم که مقادیر عنصر ساختمانی 1 یا صفر می تواند باشد.

کد برنامه:

اعمال عملگر مورفولوژیکی گسترش در محیط MATLAB با استفاده تابع imdilate انجام می پذیرد.

» BW1 = imread(‘circbw.tif’);
» SE = strel(‘rectangle’,[5 5]);
» BW2 = imdilate(BW1,SE);
» imshow(BW1),figure,imshow(BW2)

استخراج اسکلت بندی اشیا

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

در حالت کلی الگوریتم های استخراج اسکلت الگو بر پایه دو استراتژی مختلف هستند. در استراتزی اول از همه پیکسل های تصویر و در استراتژی دوم از پیکسل های کانتور تصویر برای این منظور استفاده می شود. روشی که ما در اینجا بررسی خواهیم کرد روش مبتنی بر پیکسل های تصویر بوده و به نام Hilditch معروف است که بر روی تصاویر دو سطحی ( باینری ) اعمال می کنیم.

کد برنامه:
استخراج اسکلت تصویر در MATLAB با استفاده از تابع bwmorph انجام می پذیرد.

» BW1 = imread(‘circbw.tif’);
» BW2 = bwmorph(BW1,’skel’,Inf);
» imshow(BW1),figure, imshow(BW2)

در مورد پیداکردن مراکز آبجکت ها در یک تصویر (–باینری–) میتونید از دستور regionprops استفاده کنید با این شرط که آرگومان تعیین خصوصیت این دستور رو Centroid تعیین کنید. در این صورت میتونید مراکز آبجکت ها رو به دست بیارید و Spot کنید. برای مثال، تصویر زیر رو باهم مشاهده کنیم.

فرض کنیم؛ این قصد رو داشته باشیم که مراکز دایره های بالا رو به دست بیاریم با استفاده از دستور Regionprops. کاری که لازم هست انجام بدیم و نتیجه ی خروجی دستورات رو میتوینم در تصاویر زیر بررسی کنیم.

کد برنامه:

» Img=imread(‘circles.png’);

» Img=im2bw(Img);

» Cent=regionprops(Img,’Centroid’);

» Center=cat(1,Cent.Centroid);

» imshow(Img),title(‘output Result’),hold on;

» plot(Center(:,1),Center(:,2),’+r’),hold off;

شاید یکی از مهمترین توابعی که با استفاده از تابع پیش نیاز bwlabel در زمینه پردازش تصویر مورد استفاده قرار می گیرد تابع regionprops باشد. کسب اطلاعات از یک آبجکت مهمترین بخش یک عملیات پردازش تصویر است. این تابع انواع مشخصات یک label matrix را در یک متغیر به صورت یک ساختار ذخیره می کند. ساختار در واقع یک نوع خاص از داده است.

اشتراک گزاری:

کاظم دلسوز

نماد های اعتماد

هوش مصنوعی ایران به استناد نماد های زیر ، دارای مجوز رسمی از مراجع زیر در جمهوری اسلامی ایران می باشد !

تمامی حقوق برای هوش مصنوعی ایران محفوظ است | طراحی شده با