آموزش پردازش تصویر با opencv - بخش پنجم
TRANSCRIPT
باتصویر پردازش
faradars.org/fvimg9405
: جلسه پنجمرهای با استفاده از عملگتبدیل تصاویر
ریخت شناسی
الهام شعبانی نیا:مدرسدانشجوی دکترای هوش مصنوعی
دانشگاه اصفهان
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
مقدمه.شددادهتوسعهگسستهتصاویرپردازشوتحلیلمنظوربه1960سالدرریختشناسیفیلترهایتئوری•شده،عریفتپیشازریختیالمانیکباتصویرپیمایشباکهشدهاندتعریفعملگرهاازمجموعهایروشایندر•
.میپردازندتصویررویبرتبدیلانجامبه.شوندمیتعریفخاکستریوباینریتصاویررویبرپایهصورتبهشناسیریختعملگرهای•وگرفتهقرارسلپیکاینرویبرساختاریالمانلنگرپیکسلمیشود،اعمالپیکسلیکرویبرفیلترکهزمانی•
خواهندهمجموعایندرگیرندمیقرارساختاریالمانپوششتحتکهپیکسلآنهمسایگیپیکسلهایتمامی.بود
2
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
عملگرهای ریخت شناسی(erosion)سایش-1
.مینمایدجایگزینپیکسلیمجموعهدرموجودمقدارکمترینباراپیکسلمقدار،سایش
.مینمایداستفاده3×3ساختاریالمانهایازOpenCVپیشفرض،صورتبهبه(()cv::Matیکاینجادر)خالیماتریسیککهمیگیرندقراراستفادهموردزمانیپیشفرضالمانهایاین
میشود؛دادهگسترشوسایشتوابعبهسومآرگومانعنوانآنازادهاستفوماتریسیکصورتبهآنهاتعریفبادلخواه،شکلواندازهباساختاریالمانهایازمیتوانیدشمااما.نماییداستفادهنیزتوابع،اینسومآرگومانعنوانبه
3
Erodes an image by using a specific structuring element.
C++: void erode(InputArray src, OutputArray dst, InputArray kernel, Point anchor=Point(-1,-1),
int iterations=1 )
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
عملگرهای ریخت شناسی
(erosion)سایش-1.مینمایدجایگزینپیکسلیمجموعهدرموجودمقدارکمترینباراپیکسلمقدار،سایش
4
Erodes an image by using a specific structuring element.
C++: void erode(InputArray src, OutputArray dst, InputArray kernel, Point anchor=Point(-1,-1),
int iterations=1 )
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
عملگرهای ریخت شناسی
(dilation)گسترش-1•.مینمایدجایگزینپیکسلیمجموعهدرموجودمقداربیشترینباراپیکسلمقداروبودهسایشمکملگسترش
.میکندپشتیبانیدرجاپردازشازOpenCVریختشناسیتوابعکهکرداشارهنیزنکتهاینبهبایدهمچنین:توجه.گیردقراراستفادهموردتوابعایندرنتیجهتصویرعنوانبهمیتواندورودیتصویرکهاستمعنیاینبهاین
5
Dilates an image by using a specific structuring element.
C++: void dilate(InputArray src, OutputArray dst, InputArray kernel, Point anchor=Point(-1,-1),
int iterations=1 )
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
عملگرهای ریخت شناسی
(dilation)گسترش-1•.مینمایدجایگزینپیکسلیمجموعهدرموجودمقداربیشترینباراپیکسلمقداروبودهسایشمکملگسترش
6
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
مثال
.کنیممیامتحانخاکستریتصویریکرویبررافرسایشوگسترشعملگرهای•
7
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
سطح باالی ریخت شناسیفیلترهای
8
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
باالسطح فیلترهای .دکراستفادهعملگرهادیگرتعریفبرایمیتوانسایش،وگسترشریختشناسیپایهایعملگردواز•
فیلتر،هرمتناظرکدباcv::morphologyExتابعازریختشناسی،باالیسطحفیلترهایاعمالمنظوربه•.میشوداستفاده
9
C++: void morphologyEx(InputArray src, OutputArray dst, int op,
InputArray kernel, Pointanchor=Point(-1,-1), int iterations=1)
Type of a morphological operation that can be one of the following:
•MORPH_OPEN - an opening operation
•MORPH_CLOSE - a closing operation
•MORPH_GRADIENT - a morphological gradient
•MORPH_TOPHAT - “top hat”
•MORPH_BLACKHAT - “black hat”
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
فیلتر باز کردن
میشودتعریفیافتهسایشتصویرگسترشصورتبهکردن،باز•
10
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
فیلتربستن
.میشودتعریفگسترشیافتهتصویرسایشصورتبه،بستن•
11
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
فیلتر بازکردن و بستن.میگیرندقراراستفادهمورداشیاشناساییدرمعموالًفیلترهااین•کردنبازلترفیکهصورتیدرکرده،متصلیکدیگربهراشدهاندتکهتکهاشتباهاًکهاشیاییبستنفیلتر•
میکند؛حذفراشدهاندایجادتصویردرنویزخاطربهکهکوچکیحبابهایپیدرپیصورتبهباینریتصاویررویبراگر.بودخواهدسودمندبسیارآنهاازترتیببهاستفادهیبنابراین•
.ماندخواهدباقیتصویردرموجوداصلیاشیایتنهانهایتدرشود،اعمالکردنبازوبستنفیلترهایتصویررویبرثیریتأ(بستنفیلترمتقابالًو)کردنبازفیلتربارهچندیناعمالکهداشتتوجهنکتهاینبهباید•
دیگردفعاتدرشدهاند،پرفیلتراعمالاولدفعهدرکوچکسوراخهایکهآنجاییاز.داشتنخواهدنتیجه.میشودگفتهidempotentعملگرها،اینگونهبهریاضیاصطالحدر.شدنخواهدحاصلتصویر،درتغییری
12
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
مثال.کنیممیحذفراناخواستهنویزهایزیرتصویردر•
.کنیمجداخطوطازرادوایرتمامداریمقصدزیرتصویردر•
13
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
فیلتر گرادیان ریخت شناسیاینرفتنگنظردرخاکستری،تصاویررویبرریختشناسیعملگرهایتأثیرچگونگیدرکبرایسادهروشیک•
خواهند(تفاعار)بلندیمیزانمعرفخاکستریسطوحکهصورتیبهاست،توپولوژیکیالیههایصورتبهتصاویر.بود
هکآنجاییازهمچنین.دادخواهندتشکیلرادرههاتیرهتر،رنگهایوکوههاروشنتر،رنگهایدیدگاهایناز•باهاییصخره)پرتگاههامیباشند،تاریکبهروشنپیکسلهایازسریعتغییراتمعرفآنکهدلیلبهلبهها
.میدهندشکلرا(تندشیبهایدرموجودمقدارکمترینباپیکسلهرشود،اعمالبلندیهاوپستیاینرویبرسایشعملگراگرحال•
.شدخواهدآنارتفاعکاهشباعثنتیجهدرکهشد،خواهدجایگزینخودهمسایگیترشگسدرههاداخلسمتبهپرتگاههامیشودباعثکهداشت،خواهدمتضادکامالًنتیجهایگسترشعملگر•
.ماندخواهندتغییربدوننسبتاًهموارمناطقحالتدوهردرچندهر.یابند
14
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
فیلتر گرادیان ریخت شناسی.میکندمعرفیرا(پرتگاهها)لبههاتشخیصبرایسادهروشیشده،مطرحدیدگاه•.میآیددستبههیافتسایشتصویرویافتهگسترشتصویربینتفاضلمحاسبهبالبههامکانکهصورتاینبه•اینتفاضلبا،میگیردصورتلبههامکاندریافتهسایشوگسترشتصویردوتغییراتبیشترینکهآنجاییاز•
.میشودمشخصبیشترچههرلبههااینموقعیتتصویر،دو
آنورودیآرگومانکهزمانیcv::morphologyExتابعکهاستکاریدقیقاًاین•cv::MORPH_GRADIENT،میدهدانجامباشد.
.ودبخواهندضخیمترنیزشدهدادهتشخیصلبههایباشد،بزرگترساختاریالماناندازههرچهاستبدیهی•
15
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
Top hatفیلتر
رازیرفیلترباشد،cv::MORPH_TOPHATآنورودیآرگومانکهزمانیcv::morphologyExتابع•:کندمیاعمال
16
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
Top hatفیلتر
رازیرفیلترباشد،MORPH_BLACKHATآنورودیآرگومانکهزمانیcv::morphologyExتابع•:کندمیاعمال
17
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
مثال
.آوریدبدستشناسیریختعملگرهایکمکباراتصویریکهایلبه•
18
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
قطعه بندی تصاویر با استفاده از الگوریتم آبگیر
19
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
الگوریتم آبگیربهیتوانمآنازاستفادهباکهمیباشدتصویرپردازشزمینهدرمعروفالگوریتمهایازیکیآبگیرالگوریتم•
.نمودتقسیمهمگنناحیههاییبهراتصویریکسرعتگرفتهنظردرتوپولوژیالیههایصورتبهتصویرکهزمانیکهاستاستواراساساینبرالگوریتمایناصلیایده•
صلیانسخهدر.شدهاندمحصورشیبداریلبههایتوسطمسطحنسبتاًحوزههایبامتناظرهمگننواحیشود،.مینمایدتقسیمکوچکناحیهچندینبهراآنتصویر،حدازبیشقطعهبندیباالگوریتماین
•OpenCVمنظوربهشدهتعریفپیشازگذارینشانهچندازکهمیدهدارائهراالگوریتماینازدیگرینسخه.مینمایداستفادهقطعهبندینحوهراهنمایی
20
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
الگوریتم آبگیر
.میشوداستفادهآبگیرالگوریتماساسبرتصاویرقطعهبندیبرایcv::watershedتابعاز•رغیپیکسلهرکهمیباشدعالمتدارصحیحمقادیربابیتی32شدهنشانهگذاریتصویریکتابعاینورودی•
.میباشدبرچسبیکمعرفصفر
بر.میباشندیخاصناحیهبهمتعلقیقینطوربهکهمیباشدتصویرپیکسلهایازبرخینشانهگذاریاصلی،ایده•چهبهمتعلقپیکسلهادیگرکهنمودخواهدمشخصآبگیرالگوریتمشده،نشانهگذاریتصویرایناساس
.هستندناحیههایی
21
void watershed(InputArray image, InputOutputArray markers)
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
الگوریتم آبگیر
.دهدبتابعاینبهورودیعنوانبهدلخواهبرچسبتعدادهرباایشدهنشانهگذاریتصویرمیتواندکاربر•255ازربیشتبتواندتااستشدهانتخابعالمتدارصحیحمقادیربابیتی32صورتبهشدهنشانهگذاریتصویر•
داردنگهخوددررابرچسبتاستصویریاین.داردنگهخوددرمیشود،دادهاختصاصسدپیکسلهایبهکهرا-1مقداربتواندهمچنینو•
.میشودبازگرداندهcv::watershedتابعتوسطکه
22
void watershed(InputArray image, InputOutputArray markers)فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
الگوریتم آبگیر
.میکنیماستفادهتوپولوژیدیدگاهازآبگیرالگوریتمکارکردچگونگیتوضیحبرای•صفرطحسازآب.استتصویرمعادلتوپولوژیبهسیالبانداختنراهبهآبگیر،الگوریتمپشتدرپنهانایده•
تشکیلآبریزحوزهیک،(...و1،2،3سطوحبه)مییابدافزایشآنسطحکهطورهمانومیشودشروع.میدهد
.شددخواهنادغامیکدیگربانهایتدرمختلفحوزهدوآبنهایتدرومییابدافزایشتدریجبهحوزهایناندازه•.داردنگهجدایکدیگرازراحوزهدوآنتامیکندایجادسدیکالگوریتملحظهایندر•یقطعهبندشدهایجادسدهایوآبگیرحوزههایمجموعهرسید،خودمقداربیشترینبهآبسطحکهزمانی•
.میدهندشکلراآبگیر
23
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
الگوریتم آبگیرزمانیودادخواهدتشکیلراکوچکیبسیارآبگیرحوزههایابتدادرآبگیری،روندمیرود،انتظارکههمانگونه•
عثبانتیجهدرکهمیشودایجادزیادیبسیارسدهایباشند،شدنادغامحالدریکدیگرباحوزههااینکه.شدخواهدتصویرحدازبیشقطعهبندی
شدهگزاریهنشانپیشازسطوحازآبگیریالگوریتم،اینتغییریافتهنسخهدرمشکلاینازجلوگیریبرای•ودمیشودادهاختصاصنشانههمانمقداربامطابقبرچسبینشانهاینازشدهایجادحوزهبه.میشودشروعیشوندمادغامیکدیگرباآنهاونشدهایجادسدیدیگرمیرسندهمبهیکسانبرچسبهایباحوزهدوکهزمانی
.میشودجلوگیریحدازبیشقطعهبندیمشکلازنتیجهدرکه.میافتداتفاق،cv::watershedتابعفراخوانیباکهاستروندیاین•
24
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
مثالبهمربوطناحیهزیرتصویردر•
.نماییداستخراجرازمینهپیش
25
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
با استفاده از الگوریتم زمینه پساستخراج اشیای GrabCut
26
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
GrabCutالگوریتم
•OpenCVالگوریتمهمچنینGrabCutمیباشد،قطعهبندیزمینهدردیگریمعروفالگوریتمکهرا.استنمودهپیادهسازی
الگوریتمباشباهتهاییآناستفادهنحوهدرکهآنجاییازامانمیکندعملریختشناسیمبنایبرالگوریتماین•.مینماییممعرفیدستورالعملایندرراآندارد،وجودآبگیر
27
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
GrabCutالگوریتم
.دمینمایتولیدرادقیقترینتایجامامیباشد،زیادترینسبتاًمحاسباتیباردارایGrabCutالگوریتم•صورتبهراپیشزمینهاشیایمیخواهیدکهاستزمانیبرایانتخاببهترینالگوریتماینکهگفتمیتوان•
دادهقرارگریدیتصویردروبریدهشدهتصویریازاشیاایناستنیازکهزمانیمثالبرای)نماییداستخراجکامل(.شود
28
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
GrabCutالگوریتم
لیست پارامترها•imgتصویرورودی•Mask-ینهپسزم/پسزمینهوچهنواحیاحتماالپیشزمینه/ماسکیکهباآنمشخصمیکنیمچهنواحیپیشزمینه
(cv2.GC_BGD, cv2.GC_FGD, cv2.GC_PR_BGD, cv2.GC_PR_FGD)اینکارباپرچمهایزیر.هستند.انجاممیشود3و0،1،2ویاسادهترازآنباتعیین
•rect .مختصاتپنجرهایاستکهشیئپیشزمینهراشاملمیشود-
29
void grabCut(InputArray img, InputOutputArray mask, Rect rect, InputOutputArray bgdModel,
InputOutputArray fgdModel, int iterCount, int mode=GC_EVAL فرادرس(
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
GrabCutالگوریتم
پارامترهالیست
•bdgModel, fgdModelهبهاینمنظورمورداستفادایندوآرایه.آرایههایمورداستفادهدرداخلالگوریتموازآنهامیتواندرفراخوانیهایدوبارهاینقرارمیگیرندکهالگوریتموضعیتداخلیخودرادرآنهاذخیره
.تابعبهمنظورادامهبهبودقطعهبندیبررویهمانتصویراستفادهنمود•iterCountتعدادتکرارهاییکهالگوریتمبایداجراشود.•mode-کهبایستیGC_INIT_WITH_RECTیاGC_INIT_WITH_MASKیاترکیبایندوباشد.
30
void grabCut(InputArray img, InputOutputArray mask, Rect rect, InputOutputArray bgdModel,
InputOutputArray fgdModel, int iterCount, int mode=GC_EVAL فرادرس(
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
GrabCutالگوریتم
قطعاتبهتصویرقطعهبندیبهزیرصورتبهGrabCutالگوریتمورودی،اطالعاتنمودنمشخصبا•.میپردازدزمینهپسوپیشزمینه
(cv::GC_PR_FGD)پیشزمینهبرچسبنشده،نشانهگذاریپیکسلهایتمامیبهموقتطوربهابتدا•.میشوددادهاختصاص
K)میکندیمتقسدستهچندینبهرنگیتشابهاساسبرراپیکسلهاالگوریتمکنونی،بخشبندیاساسبر•.(زمینهپسبرایبخشKوپیشزمینهبرایبخش
پسطعاتقتشخیصبهپیشزمینهوزمینهپسپیکسلهایبینمرزهاییمعرفیباالگوریتمبعدمرحلهدر•،میگیردانجامبهینهسازیروندیکباکاراین.میپردازدپیشزمینهوزمینه
درومایدنمتصلیکدیگربهراآنهاپیکسلهاشباهتاساسبرتامیکندسعیالگوریتمکهصورتاینبه•رنظدرمجازاتمقداریکآنهابرایباشدداشتهقراریکدستنسبتاًمقادیربانواحیدرمرزیکهصورتی.میگیرد
31
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
GrabCutالگوریتم
.میشودحلGrabCutsالگوریتمتوسطبهینهسازیمسئلهاین•بهشهاییبرآندرکهمتصلگرافیکقالبدرراآنویافتهراممکنجواببهینهترینمیتواندالگوریتماین•
.دهدارائهاست،شدهاعمالجواببهترینبهرسیدنمنظورساسابر.میدهداختصاصپیکسلهابهراجدیدیبرچسبهایآمده،دستبهقطعهبندیاساسبرالگوریتم•
همینویدآدستبهبهینهتریقطعهبندیتاشودتکرارمیتوانددوبارهبخشبندیروندجدیدبرچسبهایاین.یابدادامهمیتواندرونداینطور
ربهینهتراگرفتهانجامقطعهبندیتدریجبهکهاستتکراریروندیکدارایGrabCutالگوریتمبنابراین•در).آیددستبهمتفاوتتکرارهایتعدادبامیتواندبهینهقطعهبندییکتصویر،پیچیدگیبهبسته.میسازد
!(باشدکافیمیتواندتکراریکسادهتصویریک.دمیکنمشخصراتکرارتعدادهمینمیشود،دادهشده،معرفیتابعبهآرگومانآخرینعنوانبهکهعددی•
32
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
مثال
.نماییداستخراجرازمینهپیشبهمربوطناحیهزیرتصویردر•
33
فرادرس
FaraDars.org
باتصویر پردازش
faradars.org/fvimg9405
34
فرادرس این اسالید ها بر مبنای نکات مطرح شده در « آموزش پردازش تصویر با »
.تهیه شده است
.نماییدلینک زیر مراجعه برای کسب اطالعات بیشتر در مورد این آموزش به
faradars.org/fvimg9405
باتصویر پردازش
faradars.org/fvimg9405
فرادرس
FaraDars.org