46
پردازش تصویر با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

مقدمه

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

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

.توانند شامل دهها هزار پیکسل باشندOpenCVکهاستدلیلهمینبه.استعددیمقادیرازماتریسیتصویریکاساسا• ساختاردادهازاستفادهباراهاآن2

cv : :Matبیتی8مقادیرلهاپیکسخاکستریتصویریکبرای.استپیکسلیکبیانگرماتریسعنصرهر.کندمیدستکاریسهبهپیکسلهربرایرنگیتصویریکبرای.استسفیدبامتناظر255وسیاهبامتناظرصفرکههستندعالمتبدون

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

2

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

هادسترسی به مقادیر پیکسل

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

:cvکالس• :Matداردتصویریکمختلفهایویژگیبهدسترسیبرایمختلفیمتدهای..دهندمیراتصویرهایستونوسطرهاتعدادشمابهrowsوcolsعضو،عمومیمتغیرهای•:cvعنصربهدسترسیبرای• : Matمتدat(int y, int x)زماندربایدمتداینبازگشتینوعحالاینبا.داردوجود

:cvکهجاآنازو.باشدمشخصکامپایل : Matبازگشتینوعبایدنویسبرنامهدارد،نگهرانوعهرازعناصریتواندمی:مثال.کنیدمشخصراتصویرعنصرنوعبایدکنید،میفراخوانیراآنکهزمانیبنابراین.نمایدمشخصراانتظارمورد

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

3

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

هادسترسی به مقادیر پیکسل

:cvیکبنابراین.آبیوسبزقرمز،هایکانال:شودمیمشخصجزءسهباپیکسلهررنگی،تصاویردر• :Matتصویریکبرایبرداریچنینبرایراcv::Vec3bنامبهایشدهتعریفنوعOpenCV.گرداندخواهدبازرابیتی8مقدارسهازبرداریرنگیبهنگیرهایپیکسلبهدسترسیکهاستدلیلهمینبه.استعالمتبدونکارکترسهازبرداریکنندهمشخصکه.دارد

:شودمیانجامزیرصورت

کندمیمشخصرارنگیکانالسهازیکیکانالاندیس•برایکه.دارندوجودانواعدیگربرایو(cv::Vec4bوcv::Vec2b)عنصری4وعنصری2بردارهایبرایهممشابهیانواع•

جایگزینdبامضاعفاعشاریعددبرایو،fبااعشاریبرای،iباصحیحعددبرای،sباshortبرایآخرحرفدیگرانواع.استبردارعناصرتعدادNونوعTکه.شوندمیتعریف<cv::Vec<T,Nالگویکالسازاستفادهباانواعاینهمه.شودمی

4

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

هادسترسی به مقادیر پیکسل

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

cv::Matازالگوزیرکالسیککهکرداستفاده_cv::Matکالسازتوانمیاست،مشخصماتریسنوعکهمواردیدر•یاگرهاهاشارکهطوریبه.کندمیتعریفاضافهمتدچندکند،اضافهجدیدیدادهویژگیهیچاینکهبدونکالساین.است

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

:نوشت

رانوعیچهکهداندمیکامپایلزماندر()اپراتورشوند،میاعالنمتغیرایجادزماندر_cv::Matعناصرنوعکهجاآناز•.شودمیفراهمatمتدنتیجههماندقیقا)(اپراتورازاستفادهباواقعدر.گرداندباز

5

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مثال

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

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

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

6

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

پویش تصویر با اشاره گرها

7

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

چرا اشاره گرها

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

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

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

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

8

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

یادآوری

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

اولینمعموالبنابراینکند،میاستفادهراهاکانالBGRترتیبفرضپیشطوربهOpenCVکهکنیددقت•.(استآبیکانالکانال،

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

هستند،8یا4ازمضربیسطرهاکهزمانی(اینتلMMXمعماریمثال،برای)مدیامالتیپردازندههایتراشهیاوشوندمیندادهنمایشاضافههایپیکسلاینکهاستواضح.کنندپردازشکاراتربسیارراتصاویرتوانندمی

.شودمیگرفتهنادیدههاآندقیقمقدارو.شوندنمیذخیره

9

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

چند نکته

کهحالیدر.دهندمیشمابهراتصویرارتفاعrowsویژگیو(هاستونتعداد)تصویرعرض،colsدادهویژگی•.دهدمیرابایتحسببرموثرپهنایstepدادهویژگی

.دهدمیشمابهراسطریکهایبایتتعدادstepهمبازاست،ucharازغیرنوعیازشماتصویراگرحتی•shortنوعازکانالهسهماتریسیکبرایمثالبرای)آیدمیبدستelemSizeمتدتوسطپیکسلیکاندازه•

integer (CV_16SC3)،متدelemSizeگرداندبرمیرا6عدد).ویرتصیکبرایویکخاکستریتصویربرایکه)آیدمیبدستnchanelsمتدتوسطتصویردرهاکانالتعداد•

.(استسهرنگی

.گرداندبرمیراماتریسهایپیکسلکلتعدادtotalمتدنهایتدر•

10

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

چند نکته

:آیدهای یک سطر از فرمول زیر بدست میبنابراین تعداد پیکسل•

دهد که مستقیما به شما آدرس یک متدی را ارائه میcv: : Matگری، کالس برای ساده کردن محاسبات اشاره•:گرداندام را برمیjنام دارد، یک متد الگو است که آدرس سطر ptrاین متد که . دهدسطر تصویر را می

11

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مثال

ایجاد کرده و 256در 256بیایید یک تصویر رنگی •(0,0,255)باشد را برابر 80تا 0مقادیر پیکسل هایی که اندیس سطر و ستون آنها بین •

(0,255,0)باشد را برابر 160تا 80مقادیر پیکسل هایی که اندیس سطر و ستون آنها بین •

.قرار دهیم(255,0,0)باشد را برابر 256تا 160مقادیر پیکسل هایی که اندیس سطر و ستون آنها بین •

12

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

پویش تصویر با تکرارگرها

13

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مقدمه

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

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

.کندمیتبدیلمشابهشکل•OpenCVتکرارگرکالسیکcv: : MatاستانداردتکرارگرهایبامطابقC++دهدمیارائه.

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

14

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مقدمه

::cvیکبرایتکرارگرشیئیک• Matیکایجادباابتدادرتوانمیراcv::MatIterator_ objectبدست.آورد

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

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

15

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مقدمه

:کنیداستفادههمراMat_templateکالسدرشدهتعریفiteratorنوعتوانیدمیاینکهیاو•

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

16

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مقدمه

ازرصرفنظتکرارگرهاباکارراایمجموعهنوعچهاینکه

ازهمیشهکنیم،میپویش.کندمیپیرویمدلیک

17

1

cv::Mat_<cv::Vec3b>::iteratorابتدا شیئ تکرارگر خود را با استفاده از کالس مناسب که در مثال ما

. کنیداست، ایجاد می( <cv::MatIterator_<cv::Vec3bیا )

2

ال در مثال ما، گوشه با) آورید تکرارگری که در نقطه شروع قرار دارد را بدست میbeginسپس با استفاده از متد .شودانجام می()<image.begin<cv::Vec3bاین کار به صورت cv: : Matبرای یک مورد (. چپ تصویر

3

.آیدبدست میendموقعیت پایانی مجموعه شما هم به صورت مشابه اما با استفاده از متد

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مقدمه

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

.کنیدتفادهاسبلندتریگاماندازهازتوانیدمیهمچنین.شودمیاستفادهبعدیعنصربهحرکتبرای++اپراتوراز•.دهدمیرقراپردازشموردراپیکسلدههرit+=10مثالبرای

استفادهباهک.کنیداستفادهکنونیعنصربهدسترسیبرای*اپراتورازتوانیدمیپردازش،حلقهدروننهایتدر•=elementمثالبرای)خواندهراعنصرتوانیدمیاپراتورایناز *it)مثالبرای)بنویسیدیاو*it= element;).

18

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مثال

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

19

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

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

20

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مقدمه

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

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

21

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مثال

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

:این عملگر واضح سازی به صورت زیر محاسبه می شود. تقویت شده و تصویر واضح تری تولید می شود

22

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

انجام محاسبات ساده تصویر

23

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

cv:: add

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

. میگیرندمورد استفاده قرار

24

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

cv:: add

:کنیدتعریفهمماسکتوانیدمیتوابعازبرخیبرای•

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

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

25

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

دیگر توابع محاسباتی

cv::divideوcv::subtract،cv::absdiff،cv::multiplyتوابعمختلفهایفرمبه•.بیاندازیدنگاهیهم

,cv::bitwise_and:هستندموجودنیزبیتیعملگرهای• cv::bitwise_orcv::bitwise_xor,وcv::bitwise_not.

داپیرامتناظرهایپیکسلکمینهوبیشینهمقادیرکههمcv::maxوcv::minعملگرهای•.هستندمفیدبسیارنیزکنندمی

26

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

دیگر توابع محاسباتی

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

:دارندوجودنیزگیرند،میورودیعنوانبهراتصویریککهنیزعملگرتعدادی•cv::sqrt

cv::pow

cv::abs

cv::exp

cv::logو

.داردوجودOpenCVتابعیکشود،اعمالتصاویررویبایدکهکاریهرتقریبابرایواقعدر•

27

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

سربارگذاری عملگرها

OpenCVدر• در.اندشدهسربارگذاریکهدارندخودبامتناظرعملگرمحاسباتیتوابعازبسیاری2:نوشتزیرصورتبهتوانمیراcv::addWeightedفراخوانینتیجه

.هستندشدهسربارگذاری++Cعملگرهایازبسیاری•

28

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

سربارگذاری عملگرها

,&بیتیعملگرهایهاآنبیندر• |, ^, ,minتوابع،~ maxوabsایمقایسهعملگرهایو<,

<=, ==,!=, >, .گرداندبرمیباینریبیتی8تصویریکآخردستهاینکه.دارندوجود=<

ترانهاده،()m1.invماتریسوارون،m1*m2ماتریسیضربعملگرهایتوانیدمیهمچنین•,بردارینرم،()m1.determinantدترمینان،()m1.tماتریس v1.norm()خارجیضرب

v1.cross(v2)داخلی،ضربv1.dot(v2)باشیدداشتهتوانیدمیراقبیلاینازو.

.کنیدتعریفرا(=+مثال)=opعملگرتوانیدمیهمچنین•

29

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

های تصویرجدا کردن کانال

30

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

های تصویرجدا کردن کانال

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

.دهیدانجامهمتصویرپویشحلقهیکطریقازراکاراین

مجزاینمونهسهدررارنگیتصویریککانالسهکههمcv::splitتابعازتوانیدمیاما•cv::Matکنیداستفادههمراکند،میکپی.

کانالکتتصویرسهازرارنگیتصویریکتابعاینیعنی.استقبلعملدوگانcv::mergeتابع•.سازدمی

31

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405مثالبهصورتایندر.کنیماضافهتصویرآبیکانالبهتنهاراخودبارانیتصویرخواهیممیکنیدفرض•

:کردعملبایدزیرروش

32

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405مثالبهصورتایندر.کنیماضافهتصویرآبیکانالبهتنهاراخودبارانیتصویرخواهیممیکنیدفرض•

:کردعملبایدزیرروش

33

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

تعریف نواحی مورد عالقه

34

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

ROI

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

نمونهیکمانندآنباتوانمی،ROIتعریفیکباربا.استROIتعریفشاملمرحلهولینا•cv::Matنقاطکهاستآنمهمنکته.کردکارمعمولیROIوالدتصویرعنوانبهدادهبافرهمانبه

.کنندمیاشاره

35

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

ROI

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

.استcv::Rectموردیکازاستفاده،ROIتعریفراهیک•

36

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

ROI

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

یکبنابراین.شودمیاستفادهمفهومایننمایشبرایcv::Rangeساختار.(شودنمیمحسوبROIشودتعریفمحدودهدوازتواندمی.

37

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

ROI

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

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

:تصویرستونچندازمتشکلROIیکبرایمشابهصورتبهو•

38

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مثال

تصویررویبرلوگودرج

39

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

تبدیل فضاهای رنگ

40

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405 رنگی حوزهRGB

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

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

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

.می شوندذخیرهوشدهتجزیهآبیوسبزقرمز،مؤلفهسهبهرنگیفیلترهایاز

41

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405 مشکالتRGBرنگدوشباهتمیزاناندازه گیریبرایمناسبیراهکارRGBحوزهدررنگ هاتفاضلمتأسفانه•

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

.باشندنداشتهیکدیگربهشباهتیهیچ گونهتفاضلمیزانهمان.نیستجدارنگمولفهازروشناییمولفه،RGBحوزهدر•

.داردمغایرتهارنگازانسانتوصیفبا•

HSV،CIEمثالهمچوندیگریرنگیفضاهایمشکلاینحلمنظوربه• L*a*b*،...شدهمعرفی.هستندمتفاوتیخواصداراییکهرکهاند

42

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405فضاهای رنگی دیگراستاینآنهاخاصیتمهم ترینکههستنددیگریمتداولرنگیدوحوزهHLSوHSVرنگیحوزه•

نگ هارتوصیفبراینیزانسانکهروشناییمیزانواشباعدرجهرنگ،مؤلفه؛3صورترابهرنگ هاکه.می دهندارائهمی کند،استفادهازآنها

رنگیایفضاین.می باشدادراکییکنواختیخاصیتدارایکهاستشدهمعرفیدیگریرنگیفضای•CIE L*a*b*ویکسل هاپرنگبیناقلیدسیتفاضلرنگی،حوزهاینبهتصاویرتبدیلبا.داردنام

.بودخواهدرنگدوبینشباهتمیزانمعرفتفاضلاینوبودهمعنادارکامالًهدفرنگ

موردJPEGفرمتباتصاویر سازیذخیرهدرکهاستYCrCbرنگیحوزه هایاینازدیگریکی•قرارمی گیرداستفاده

43

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

cvtColor.استانجاملقابOpenCVکتابخانهcv::cvtColorتابعتوسطوسادگیبهرنگحوزهدرتبدیل•

CIEبهراورودیتصویرRGBرنگیحوزهتابیاییدمثال L*a*b*نماییمتبدیل:

cv::cvtColor(image, converted, CV_BGR2Lab);

44

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

cvtColorوجهتبایداما.بودخواهدورودیتصویردرپیکسل هانوعهمانندخروجیتصویردرپیکسل هانوع•

باصاویرتدرمثالبرای.استوابستهتصویررنگیحوزهبهپیکسل هامقادیردامنههموارهکهداشتCIEرنگیحوزه L*a*b*درکانالپیکسل هامقادیرLودرکانال های100تا0دربازهaوbدربازه.می باشد127تا-127

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

یکلشامخروجیتصویرنتیجهدرکهنمودتبدیلخاکستریفرمبهراتصویرمی توانهمچنین•.خواهدبودکانال

cv::cvtColor(color, gray, CV_BGR2Gray);

45

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

46

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

.تهیه شده است

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

faradars.org/fvimg9405

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

faradars.org/fvimg9405

فرادرس

FaraDars.org