آموزش پردازش تصویر با opencv - بخش چهارم

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

Upload: faradars

Post on 16-Apr-2017

198 views

Category:

Education


8 download

TRANSCRIPT

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

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

faradars.org/fvimg9405

: جلسه چهارممحاسبه هیستوگرام تصویر

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

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

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

هیستوگرام چیست؟

پیشاز(bin)هایستونازیکهردردادهفراوانیدهدمینشانکهاستایمیلهنموداریکهیستوگرام•.استچقدرشدهتعیین

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

2

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

هیستوگرام تصویر چیست؟

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

256خاکستریتصویریکهیستوگرامبنابراینشود،گرفتهنظردرbinیکخاکستریسایههربرایاگرحال•Bin.دهدمیشمابهرادارند،صفرمقدارکههاییپیکسلتعدادصفرشمارهBin.داشتخواهد(binیا)درایه.آخرالیویکمقدارباهاپیکسلتعدادیکشماره

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

3

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

OpenCVدر محاسبه هیستوگرام

هاآرایهازایمجموعههیستوگراممحاسبهبرایcv::calcHistتابع•.استموجودimgprocماژولدرتابعاین•

4

void calcHist(const Mat* images, int nimages, const int* channels, InputArray

mask, SparseMat& hist, int dims, const int* histSize, const float** ranges,

bool uniform=true, bool accumulate=false )

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

OpenCVدر محاسبه هیستوگرام

پارامترها•images:امکاناینتابعحالاینبا.استکانال-3یاکانالتکتصویریکبرایشماهیستوگراماوقاتبسیاریدر

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

•nimages:تصاویرتعداد•channels:هیستوگراممحاسبهبرایاستفادهموردهایکاناللیست•Mask:توابعازبسیاریمانندOpenCVمیراهاییپیکسلچهدهدنشانکهکنید،تعریفماسکیکتوانیدمی-

.(شوندینمگرفتهنظردرباشد،صفرماسکمقدارهاآنبرایکهکههاییپیکسل)بگیریدنظردرشمارشدرخواهید

5

void calcHist(const Mat* images, int nimages, const int* channels, InputArray

mask, SparseMat& hist, int dims, const int* histSize, const float** ranges,

bool uniform=true, bool accumulate=false ) فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

OpenCVدر محاسبه هیستوگرام

پارامترهاادامه•hist:موردیکدرنتیجههیستوگرامcv::MatNDبرایکهاستعمومیکالسیکاین.شودمیذخیره

سهو1،2هایماتریسبرایراatمتدراحتخیلیکالساین.شودمیاستفادهبعدیNهایماتریسدستکاری.شوندمیذخیرهfloatشکلبههیستوگرامدرمقادیرکهکنیددقت.استکردهتعریفبعدی

•dims:بعدییکهیستوگرامبرای1مثال،برای.کندمیمشخصراهیستوگرامابعادششمپارامتر.•ranges:حالترد.شودتعریفیکنواختغیریایکنواختصورتبهتواندمیهیستوگرامهایستونمحدوده

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

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

6

void calcHist(const Mat* images, int nimages, const int* channels, InputArray

mask, SparseMat& hist, int dims, const int* histSize, const float** ranges,

bool uniform=true, bool accumulate=false ) فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

OpenCVدر محاسبه هیستوگرام

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

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

.استمفیدکنیم،محاسبه

7

void calcHist(const Mat* images, int nimages, const int* channels, InputArray

mask, SparseMat& hist, int dims, const int* histSize, const float** ranges,

bool uniform=true, bool accumulate=false ) فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

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

شوند،میذخیرهfloatشکلبههیستوگرامدرمقادیرگفتیمکههمانطور•هیستوگرامیکدرمثالکنیماستفادهatمتدازاستکافیهیستوگرامازامiدرایهبهدسترسیبرایهمچنین•

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

hist.at <float>(i)

8

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مثال

.آوریدبدستراتصویرهیستوگرامزیرویژگیهایباتصویرچندبرای•روشنتصویریک-1تاریکتصویریک-2

خاکستریسطوحازیکنواختنسبتاتوزیعباتصویریک-3

9

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

به کارگیری جداول جستجو برای تغییر ظاهر تصویر

10

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مقدمه

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

تصویربودبهاحتماالًوتغییربرایاطالعاتاینازمی‌توانتصویریکرویپیکسلیمقادیرتوزیعتحلیلبا•.کرداستفاده

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

11

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مقدمهادیرمقانتقالچگونگیکهاستساده(یکبهچندیا)یکبهیکتابعیکحقیقتدرجستجوجدولیک•

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

:یعنی.دهدمیمابهراخاکستریسطحاینبامتناظرجدیدروشناییشدتمقدارجدولامiدرایه

12

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

جداول جستجو

دتولیجدیدتصویریکوکردهاعمالتصویریکرویبرراجستجوجدولیکOpenCVدرcv::LUTتابع•:کندمی

13

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

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

بهتواندیمسادهانتقالیکمثالً.اندکردهتغییراست،شدهتوصیفجستجوجدولدرکهایگونهبهآندرهاپیکسل:باشدزیرشکل

و254به255،1به0روشناییشدتیعنی.کندمیوارونراهاپیکسلروشناییشدتمقادیرسادگیبهتغییراین•تولیدراهاولیتصویرنگاتیوتصویر،یکرویبرجستجوییجدولچنیناعمال.شوندمیدادهتغییرآخرتاطورهمین.کندمی

14

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مثال

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

(imax)بیشترینو(imin)کمترینابتداکهشودمیطراحیایگونهبهکارفرآیند.دادپوششراروشناییمجدداًانتومیراروشناییشدتمقادیرسپس.شودمیدادهتشخیصدارند،صفرغیرمقدارکهروشناییمقادیر

روشناییشدتمقادیر.شوددادهانتساب255بهimaxمقداروصفربهiminمقدارکهنگاشتایگونهبه:شوندمینگاشتهزیرشکلبهمجدداًخطیصورتبهنیزامiموقعیت

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

15

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

یکنواخت سازی هیستوگرام تصویر

16

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

یکنواخت سازی هیستوگرام

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

.بخشدمیبهبودراتصویرموثریطوربهکهاستدت‌هایشازباریکیمحدودهتنهاکهنیستمسئلهاینتصویر،یکبصرینقصاوقاتبسیاریدرحالاینبا•

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

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

.تصویرهیستوگرام

17

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

یکنواخت سازی هیستوگرام

•OpenCVشودیفراخوانزیرصورتبهتواندمیکهاست،دادهارائههیستوگرامسازییکنواختبرایتابعیک:

تابعایندر•.شودمیذخیرهHدرومحاسبهSRCتصویرهیستوگرامابتدا–.شودمینرمالهیستوگرامسپس–:شودمیمحاسبههیستوگرامانتگرالسپس–

.شودمیاعمالاولیهتصویررویبرجدیدتابعاینسپس–

18

void equalizeHist(InputArray src, OutputArray dst)فرادرس

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

پس افکنش یک هیستوگرام

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

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

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

22

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

پس افکنش یک هیستوگرام

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

.استcv::calcHistتابعمشابهcv::calcBackProjectتابع•

23

void calcBackProject(const Mat* images, int nimages, const int* channels,

InputArrayhist, OutputArray backProject, const float** ranges,

double scale=1, bool uniform=true )

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

پس افکنش یک هیستوگرام

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

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

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

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

دهیدتغییرشدهداده

24

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

تشخیص محتوای خاصی از تصویر

زیرلشکبهکارمراحل.دهیدتشخیصآندرونراخاصیمحتوایخواهیدمیوداریدتصویریککهکنیدفرض•:استوردمبافتیاشیءازاینمونهشاملکهرانظرموردناحیهکهاستآندهیمانجامبایدکهکاریاولین1.

.کنیمانتخابعالقهموردناحیهشکلبهرا،استجستجو.شودمیاستخراجناحیهاینهیستوگرامسپس2.بهدهشدادهپیکسلیکتعلقاحتمالکهآوردخواهیمدستبهتابعیهیستوگرام،اینکردننرمالبا3.

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

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

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

25

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مثال

.کنیممیپیداراصورتبهمربوطناحیهتصویریکدر•

26

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

یءاستفاده از الگوریتم جابجایی میانگین برای یافتن یک ش

27

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

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

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

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

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

.دهدمیانجاممیانگینجابجاییالگوریتمکهاست

28

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

میانگینالگوریتم جابجایی

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

-وزنمیانگینیامرکزکردنپیداطریقازکاراین•دهشتعریفپیشازپنجرهیکدروندادهنقاطدار

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

نجرهپمرکزکهزمانیتارافرآینداینوکردهجابجا.کندمیتکرارشود،همگراپایدارنقطهیکبه

29

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

meanShiftتابع

:شودمیتعریفتوقفمعیاردوOpenCVپیاده‌سازیدر•درچنینوانتمیراآنازکمترکهپنجرهمرکزجابجاییازمقداریدیگریوتکراردفعاتتعدادبیشینهتعیینیکی–

.استشدههمگراپایدارنقطهیکبهمرکزینقطهکهگرفتنظر

.شوندمیذخیرهcv::TermCriteriaنوعازشیءیکدرونمعیاردواین–یفیتکبهبستگینتیجهکیفیتکهاستواضح.گرداندمیبرراشدهانجامتکرارهایتعدادcv::meanShiftتابع–

.داردشدهدادهاولیهنقطهوشدهفراهماحتمالنقشه

30

Finds an object on a back projection image.

C++: int meanShift(InputArray probImage, Rect& window, TermCriteria criteria)فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

CamShiftتابع

•Camshift(پیوستهوفقیمیانگینجابجایی)پنجرهاندازهکهاستآنمیانگینجابجاییباآنفرق.استCamshiftردیابدیگرمرتبطالگوریتمیک•

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

.کندمیتنظیم

31

Finds an object center, size, and orientation.

C++: RotatedRect CamShift(InputArray probImage, Rect& window, TermCriteria criteria)

فرادرس

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

بازیابی محتوایی تصویر

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

احساسروایناز.می‌باشندتصویریکمحتوایتوصیفبرایموثرروشیهاهیستوگرامکهگرفتیمیادقبالً•.کرداستفادهنیزتصویرمحتواییبازیابیمسئلهحلبرایهاآنازتوانمیکهشودمی

در.استشانهایهیستوگرامسادهمقایسهباتصویردوبینشباهتاندازه‌گیریتواناییاینجادرکلیدینکته•تابعسازیپیادهدرراهاآنازموردچندیننیزOpenCVواستشدهپیشنهادمتعددیمعیارهایگذشته

cv::compareHistاستکردهلحاظخود.

34

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مقایسه دو هیستوگرام

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

35

Compares two histograms.

C++: double compareHist(InputArray H1, InputArray H2, int method)

C++: double compareHist(const SparseMat& H1, const SparseMat& H2, int method)

•CV_COMP_CORREL Correlation

•CV_COMP_CHISQR Chi-Square

•CV_COMP_INTERSECT Intersection

•CV_COMP_BHATTACHARYYA Bhattacharyya distance

•CV_COMP_HELLINGER Synonym for CV_COMP_BHATTACHARYYA

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مقایسه دو هیستوگرام

درهمسایههایbinیعنی.می‌باشندbinبهbinمقایسهمبنایبرهیستوگراممقایسهمعیارهایازبسیاری•.گیرندنمیقراراستفادهموردهیستوگرامهایbinمقایسههنگام

پرچمازاستفادهبا)intersectionمقایسههایروشترینسادهازیکی•CV_COMP_INTERSECTION)هربرایسادهخیلیمتداین.استbinباراهاهیستوگراممقداردو

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

intersectionآیدمیدستبههاپیکسلمجموعبابرابرعددییکسانکامالًهیستوگرامدوبرایوصفر.

36

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مقایسه دو هیستوگرام

مجموعکهاست(CV_COMP_CHISQRپرچمبا)Chi-Squareروشدیگرموجودمتدهایجملهاز•.آوردمیدستبهراهاbinبیننرمالمربعیتفاضل

هکعملگری.استنرمالهمبستگیعملگربرمبتنیکه(CV_COMP_CORRELپرچمبا)همبستگیمتدیا•.شودمیاستفادهسیگنالدوبینشباهتگیریاندازهبرایسیگنالپردازشدرآناز

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

37

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مقایسه دو هیستوگرام

EMD(Earthمعیارهمچنین• Mover Distance)استهیستوگراممقایسهمحبوبهایروشازیکینیز.هیستوگرامدوشباهتارزیابیبراینیزرامجاورهایbinمقادیرروشاینکهاستآنروشایناصلیمزیت

.گیردمینظردر

38

Computes the “minimal work” distance between two weighted point

configurations.

C++: float EMD(InputArray signature1, InputArray signature2, int distType,

InputArraycost=noArray(), float* lowerBound=0, OutputArray flow=noArray() )

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

مثال

.کنیممیپیداراورودیعکسیکبامرتبطتصاویرتمامیتصاویرازمجموعهیکدر•

39

فرادرس

FaraDars.org

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

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

faradars.org/fvimg9405

40

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

.تهیه شده است

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

faradars.org/fvimg9405

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

faradars.org/fvimg9405

فرادرس

FaraDars.org