32
پردازش تصویر باfaradars.org/fvimg9405 جلسه س وم: رکردن تصاویر فیلت مدرس: نیالهام شعبانی ا هوش مصنوعی دانشجوی دکترایصفهانه انشگا دا ﻓﺮادرسFaraDars.org

آموزش پردازش تصویر با OpenCV - بخش سوم

Embed Size (px)

Citation preview

Page 1: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

: ومسجلسه فیلترکردن تصاویر

الهام شعبانی نیا:مدرسدانشجوی دکترای هوش مصنوعی

دانشگاه اصفهان

فرادرس

FaraDars.org

Page 2: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

حوزه مکان و حوزه فرکانس

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

.گیردقرارادهاستفموردقبیلاینازونظرموردبصریهایویژگیاستخراجتصاویر،ازنویزحذفمنظوربهتواندمیفیلترینگ•.داردهاوسیستمهاسیگنالتئوریدرریشهفیلترینگعمل

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

2

فرادرس

FaraDars.org

Page 3: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

حوزه مکان و حوزه فرکانس

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

.(استکوچکبهنظرنقطهایناز.کندمیایجادتصویریکتوصیفبرایدیگریراهتصویریکدرتغییراتاینفرکانسمشاهده،بنابراین•

مکانیزهحوعنوانبهخاکستریسطحتوزیعمشاهدهباتصویریکتوصیفازکهحالیدر.شودمییادفرکانسیحوزهعنوان.شودمییاد

3

فرادرس

FaraDars.org

Page 4: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

حوزه فرکانس

تریننپاییازفرکانسیشمحتوایبهراتصویریکفرکانسحوزهتحلیل•.کندمیتجزیهفرکانسباالترینتافرکانس

خیلیاویرتصروشناییهایشدتکهاستنواحییبامتناظرپایینفرکانس•شدتردسریعتغییراتباباالهایفرکانسطرفیاز.کندمیتغییرکند.شوندمیتولیدروشناییهای

کهندداروجودکسینوسیتبدیلفوریه،تبدیلمثلمعروفتبدیلچند•از.دهندنشانراتصویریکفرکانسیمحتوایصریحصورتبرایتوانندمی

عمودیهایفرکانسازهماست،دوبعدیموجودیتیکتصویرکهآنجاجهتدرتغییرات)افقیهایفرکانسازهمو(عمودیجهتدرتغییرات)

.استشدهتشکیل(افقی

4

فرادرس

FaraDars.org

Page 5: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

فیلترینگ

اندهایببقیهوتقویتراتصویرازخاصیفرکانسیباندهایکهاستعملیفیلترفرکانس،حوزهدرتحلیلچارچوبدر•.کندمیتضعیفیامسدودراتصویرفرکانسی

باالگذرفیلترآنکسبرعوکندمیحذفراتصویریکفرکانسیباالیهایمولفهکهاستفیلتریگذرپایینفیلتریکبنابراین•.بردمیمیانازراپایینهایمولفه

موردمکانهحوزدرفیلترینگابتداآموزشایندر.دادانجاممکانحوزهدریاوفرکانسحوزهدرمستقیماتواندمیفیلترینگ•.استتوجه

5

فرادرس

FaraDars.org

Page 6: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

پایین گذرفیلترهای

6

فرادرس

FaraDars.org

Page 7: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

.کندیرا حذف مهای باالی فرکانسی یک تصویر یک فیلتر پایین گذر فیلتری است که مولفه•ن هدف یک راه ساده برای رسیدن به ای. چنین فیلترهایی کاهش اندازه تغییرات تصویر استهدف •

غییرات با انجام این کار ت. های اطرافش استجایگزین کردن هر پیکسل با مقدار میانگین پیکسل.شوندتر جایگزین میروشنایی سریع حذف شده و با یک تغییر بسیار تدریجی

Current=1/9(current+left+right+up+down+

corner1+corner2+corner3+corner4)

7

Cv::blurفیلتر میانگین

فرادرس

FaraDars.org

Page 8: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

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

پیکسلیموقعیتهربامتناظرضرایبکهماتریسیککمکبهتوانمیرافیلتریکمتفاوتهایوزن•.نمودبیاندهد،مینشانمذکورهمسایگیدررا

.شودمیاعمالآنرویبرحاضرحالدرفیلترکهاستپیکسلیبامتناظرماتریسمرکزیعنصر•هسته3×3میانگینفیلتریکبرای.شودمیخواندهماسکیاوهستهماتریسایناوقاتگاهی:استزیرشکلبهمذکور

8

Cv::blur

فرادرس

FaraDars.org

Page 9: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

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

:استاعمالقابلزیرشکلبهگذرپایینفیلتراین•

9

Cv::blur

فرادرس

FaraDars.org

Page 10: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

گیهمساییکدرترنزدیکهایپیکسلبرایبیشتریاهمیتکهدهیممیترجیحهاوقتبعضی•.شویمقائلپیکسلی

بیشتریوزننزدیکترهایپیکسلبهآندرکه.کردمحاسبهوزنیمیانگینیکتوانمیبنابراین•.شوددادهدورترهایپیکسلبهنسبت

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

:شودمیزیرفراخوانیشکلبهوکندمیاستفادهرافیلتریچنینcv::GaussianBlurتابع•

10

cv::GaussianBlur

فرادرس

FaraDars.org

Page 11: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

.استمرکزیلپیکسازآنفاصلهبامتناسبپیکسلیکبهشدهدادهنسبتوزنگاوسیفیلتربرای•:استزیرفرمدارایمتغیرهیکگاوسیتابعکهبیاوریدخاطربه

مقدار.شودیکبرابرمتفاوتهایوزنجمعکهشودمیانتخابطوریبهAسازینرمالضریب•ترمسطحابعتباشد،بزرگترسیگماچقدرهر.کندمیکنترلرانتیجهگاوسیتابعپهنای(σ)سیگماکنیممحاسبه0.5سیگمایبابازهبرایرابعدییکگاوسیفیلترضرایباگرمثالبرای.بودخواهد

:رسیممیزیرضرایببه

مناسبسیگمایمقدارباcv::getGaussianKernelتابعفراخوانیبامقادیراینکهکنیددقت•.اندآمدهبدست

11

cv::GaussianBlur

فرادرس

FaraDars.org

Page 12: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

مثال

.یک تصویر را بلور کرده و نمایش می دهیم•

12

فرادرس

FaraDars.org

Page 13: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

فیلتر میانه

13

فرادرس

FaraDars.org

Page 14: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

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

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

.هستندمفیدنمکی-فلفلنویزبامقابلهبرایخصوصبهمیانهفیلترهای•

:شودمیانجامهافیلتردیگرمشابهروشیبهمیانهفیلترتابعفراخوانی•

14

Cv::medianBlur

فرادرس

FaraDars.org

Page 15: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

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

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

.شودمیجایگزینواقعرد.کندمیعملنمکی-فلفلنویزحذفبرایخوباینقدرفیلتراینکهاستدلیلهمینبه•

بههرگزدارد،حضورشدهدادهپیکسلهمسایگییکدرمجزاسفیدیاسیاهپیکسلیککهزمانیمقدارابهمیشهبنابراین.(استمینیممیاماکزییممقدارچون)شودنمیانتخابمیانهمقدارعنوان

تحتسیاربنویزیچنینباتواندمیسادهمیانگینفیلتریکمقابلدر.شودمیجایگزینهمسایه.گیردقرارتاثیر

15

Cv::medianBlur

فرادرس

FaraDars.org

Page 16: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

باال گذرفیلتر

16

فرادرس

FaraDars.org

Page 17: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

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

.کندمیمحاسبهتصویرازواقعدرcv::Sobelتابعمشابهکه.کندمیمحاسبهراتصویرالپالسینcv::Laplacianتابع•

.کندمیاستفادهخودماتریسهستهآوردنبدستبرایcv::getDerivKernelsپایهتابعهمانرادومبهمرتمشتقاتتعریفطبقکهچرا.نداردرامشتقترتیبپارامترهایکهاستآنتفاوتتنها

.کندمیمحاسبه

17

cv::Laplacian

Laplacian( src_gray, dst, ddepth, kernel_size, scale, delta, BORDER_DEFAULT );

فرادرس

FaraDars.org

Page 18: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

:شودمیتعریفآندوممرتبهمشتقاتجمعشکلبهبعدیدوتابعیکالپالسین•

:زدتخمینزیر3×3هستهباراآنتوانمیشکلترینسادهدر•

الپالسینهککندمیتضمیناین.استصفربرابرهمیشهالپالسینهستهمقادیرجمعکهکنیددقت•راتصویرعتابانحنایالپالسینکهآنجاازواقعدر.باشدصفرثابتهایروشناییشدتبانواحییدر

.باشدصفرمسطحنواحیدربایستیگیرد،میاندازه

18

cv::Laplacian

فرادرس

FaraDars.org

Page 19: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

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

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

-Zero)هستندواقعالپالسینتابعصفرازعبوردرهالبهکهاستآنحقیقتاینبیاندیگرراهcrossing).

19

cv::Laplacian

فرادرس

FaraDars.org

Page 20: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

ه در این کاری است ک. توان با کم کردن الپالسین آن تقویت کردکنتراست یک تصویر را می•ی که جای. دوم انجام دادیمجلسه در "دسترسی به همسایگان در هنگام پویش تصویر"دستورالعمل

:هسته زیر را معرفی کردیم

(. یعنی تصویر اصلی منهای الپالسین آن)که معادل با یک منهای هسته الپالسین است •

20

cv::Laplacian

فرادرس

FaraDars.org

Page 21: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

فیلترهای جهتی برای تشخیص لبه ها

21

فرادرس

FaraDars.org

Page 22: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

دواساسربکهاستلبهتشخیصبرایخطیفیلتریکسوبلعملگر•:کندمیعملزیرساختارباساده3×3هسته

عملگرآنگاهبگیریم،نظردربعدیدوتابعیکشکلبهراتصویراگر•ویعمودجهاتدرتصویرتغییراتازمعیاریعنوانبهتوانمیراسوبل:شودمیخواندهگرادیانمعیار،اینریاضیبیانبه.ببینیمافقی

22

عملگر سوبل

فرادرس

FaraDars.org

Page 23: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

امل آن به تعریف ک. کندنتیجه کانولوشن تصویر با یک هسته سوبل را محاسبه میcv::Sobelتابع •:شکل زیر است

23

cv::sobel

فرادرس

FaraDars.org

Page 24: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

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

مشخصباعمودیهستهو،y-orderوx-orderبرای0و1کردنمشخصباسوبلافقیهسته•ستفادهاحالتدواینازاغلباما.کرداستفادهتوانمینیزرادیگرترکیبات.شوندمیتولید1و0کردن

.شودمیانتخاب7و1،3،5مقادیر.کرداستفاده3×3ازبزرگتراندازهباهاییهستهازتوانمیهمچنیننهایتدر•

یا3×1)یبعدیکسوبلفیلتریکبامتناظریکاندازهبهایهسته.هستندهستهاندازهبرایممکنهای.است(1×3

آنبهbetaافستیککردومقیاسalphaدرضربباتوانمیرانتیجهتصویر،درنتیجهذخیرهازقبل•.نموداضافه

24

cv::sobel

فرادرس

FaraDars.org

Page 25: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

هکگرادیانبردارنرم.استجهتیکونرمیکدارایاست،بعدیدوبرداریکگرادیانکهجاآناز•.استچقدرتغییراتمیزانکهگویدمیشمابهشود،میمحاسبه(L2نرمیا)اقلیدسینرمبامعموال

L1نرمکه.کنیممیمحاسبهمطلققدرمقادیرجمعصورتبهرانرماینعموماتصویرپردازشدر•.آوردمیبدستکمتریبسیارمحاسباتیهزینهباراL2نرمبهنزدیکمقادیریوشودمیخوانده

:کنیممیعملزیرصورتبهکاراینبرای

25

cv::sobel

فرادرس

FaraDars.org

Page 26: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

نگاه اما اگر هم به نرم و هم به جهت نیاز دارید، آ. شوداغلب برای تشخیص لبه تنها نرم محاسبه می•:تواند مورد استفاده قرار گیردزیر میOpenCVتابع

را به عنوان یک trueکافی است که . شودفرض جهت بر حسب رادیان محاسبه میبه طور پیش•.آرگومان دیگر اضافه کنید تا بر حسب درجه محاسبه شود

26

cv::sobel

فرادرس

FaraDars.org

Page 27: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

اشد، تری از جهت گرادیان نیاز بزمانی که تخمین بسیار دقیقscharrعملگر•.شودمیترجیح داده

و cv::Sobelاز طریق تابع scharrهای توان از هستهدقت کنید که می•:استفاده کردcv_SCHARRفراخوانی آن با آرگومان

:استفاده شود cv::Scharrو یا از تابع •

27

عملگرهای لبه یاب دیگر

فرادرس

FaraDars.org

Page 28: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

عملگرمثالبرای.دارندوجودنیزدیگریگرادیانعملگرهای•:کندمیمعرفیرازیرهایهسته(Prewitt)پرویت

2×2سادههایهستهایناساسبر(Roberts)روبرتزعملگر•:است

28

عملگرهای لبه یاب دیگر

فرادرس

FaraDars.org

Page 29: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

توابع دیگر

29

فرادرس

FaraDars.org

Page 30: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

نامبهخاصیتابعOpenCVاست،تصویرپردازشدرشایعبسیارعملیفیلترازاستفادهکهآنجااز•cv::filter2Dتاسکافیتنهاآنازاستفادهبرای.دهدمیانجامراکاراینکهاستکردهتعریفرا

-میراخوانیفهستهوتصویررویبرتابعسپس.کنیدتعریف(ماتریسیکفرمبه)راهستهیککه.گرداندبرمیراشدهفیلترتصویرو.شود

.کندمیکانولشندلخواههستهیکباراتصویریکfilter2Dتابع•

void filter2D(InputArray src, OutputArray dst, int ddepth, InputArray kernel, Point

anchor=Point(-1,-1), double delta=0, int borderType=BORDER_DEFAULT )

30

cv::filter2D

فرادرس

FaraDars.org

Page 31: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

31

cv::filter2D

انتومیتابعاینازاستفادهباخود(2جلسه)سازیواضحتابع

زیرصورتبهآسانخیلیرا فرادرس:نوشتمجددا

FaraDars.org

Page 32: آموزش پردازش تصویر با OpenCV - بخش سوم

باتصویر پردازش

faradars.org/fvimg9405

32

فرادرس این اسالید ها بر مبنای نکات مطرح شده در « آموزش پردازش تصویر با »

.تهیه شده است

.نماییدلینک زیر مراجعه برای کسب اطالعات بیشتر در مورد این آموزش به

faradars.org/fvimg9405

باتصویر پردازش

faradars.org/fvimg9405

فرادرس

FaraDars.org