More Related Content Similar to آموزش پردازش تصویر با OpenCV - بخش دوم (20) آموزش پردازش تصویر با OpenCV - بخش دوم2. پردازشتصویربا
faradars.org/fvimg9405
مقدمه
•برنامه ساخت برایو را تصاویر و باشید داشته دسترسی تصاویر محتوای بتوانیدبه باید کامپیوتر بینایی هایکنید ایجاد یا یرایش.
اینجلسهرا تصویر عناصر چطور که داد خواهد یاد شما به(پیکسل همان یعنیرا ها)کنید دستکاری.خواهید یاد شماگرفت
پیکسل از هریک و کرده پویش را تصویر یک چطور کهکنید پردازش را هایش.
•می یاد همچنیندهید انجام موثر صورت به را کار این چطور که گیرید.دارن متوسطی ابعاد که تصاویری حتی که چرامی ،د-
باشند پیکسل هزار دهها شامل توانند.
•اساسایکتصویرماتریسیازمقادیرعددیاست.بههمیندلیلاستکهOpenCV 2آنهارابااستفادهازدادهساختار
cv : :Matدستکاریمیکند.هرعنصرماتریسبیانگریکپیکسلاست.براییکتصویرخاکستریپیکسلهامقادیر8بیتی
بدونعالمتهستندکهصفرمتناظرباسیاهو255متناظرباسفیداست.براییکتصویررنگیبرایهرپیکسلبهسه
مقدارنیازاستتابتوانسهکانالاصلیرنگ(،قرمز،سبزآبی)رانمایشداد.بنابرایندراینحالتهرعنصرماتریسیکسه
تاییاست.
2
سرداﺮﻓ
FaraDars.org
3. پردازشتصویربا
faradars.org/fvimg9405
پیکسل مقادیر به دسترسیها
•برایدسترسیبههرعتصر،ماتریستنهابایدشمارهسطروستونآنرامشخصکنید.آنگاهعنصرمربوطهکهمیتواندیک
مقدارعددیتنهاویابراییکتصویرچندکانالییکبردارازمقادیر،باشدبرگرداندهمیشود.
•کالسcv: :Matمتدهایمختلفیبرایدسترسیبهویژگیهایمختلفیکتصویردارد.
•متغیرهایعمومی،عضوcolsوrowsبهشماتعدادسطرهاوستونهایتصویررامیدهند.
•برایدسترسیبهعنصرcv: : Matمتدat(int y, int x)وجوددارد.بااینحالنوعبازگشتیاینمتدبایددرزمان
کامپایلمشخصباشد.وازآنجاکهcv: : Matمیتواندعناصریازهرنوعرانگه،داردبرنامهنویسبایدنوعبازگشتی
موردانتظاررامشخصنماید.بنابراینزمانیکهآنرافراخوانیمی،کنیدبایدنوععنصرتصویررامشخصکنید.مثال:
•ازاینمتدتنهابرایدسترسیتصادفیبهپیکسلهایتصویربایداستفادهکرد.اماهرگزنبایدبرایپویشیکتصویراستفاده
شود.
3
سرداﺮﻓ
FaraDars.org
4. پردازشتصویربا
faradars.org/fvimg9405
پیکسل مقادیر به دسترسیها
•درتصاویر،رنگیهرپیکسلباسهجزءمشخصمیشود:کانالهای،قرمزسبزوآبی.بنابراینیکcv: :Matبراییکتصویر
رنگیبرداریازسهمقدار8بیتیرابازخواهدگرداند.OpenCVنوعتعریفشدهایبهنامcv::Vec3bرابرایچنینبرداری
دارد.کهمشخصکنندهبرداریازسهکارکتربدونعالمتاست.بههمیندلیلاستکهدسترسیبهپیکسلهایرنگیبه
صورتزیرانجاممیشود:
•اندیسکانالیکیازسهکانالرنگیرامشخصمیکند
•انواعمشابهیهمبرایبردارهای2عنصریو4عنصری(cv::Vec2bوcv::Vec4b)وبرایدیگرانواعوجوددارند.کهبرای
انواعدیگرحرفآخربرایshortباs،برایعددصحیحباi،برایاعشاریباf،وبرایعدداعشاریمضاعفباdجایگزین
میشود.همهاینانواعبااستفادهازکالسالگویcv::Vec<T,N>تعریفمیشوند.کهTنوعوNتعدادعناصربرداراست.
4
سرداﺮﻓ
FaraDars.org
5. پردازشتصویربا
faradars.org/fvimg9405
پیکسل مقادیر به دسترسیها
•استفادهازمتدatکالسcv: : Matگاهیمیتوانددستوپاگیرباشد.زیرانوعبازگشتیبایدبرایهرفراخونیمشخص
شود.
•درمواردیکهنوعماتریسمشخص،استمیتوانازکالسcv::Mat_استفادهکردکهیکزیرکالسالگوازcv::Mat
است.اینکالسبدوناینکههیچویژگیدادهجدیدیاضافه،کندچندمتداضافهتعریفمیکند.بهطوریکهاشارهگرهایا
ارجاعاتبهیککالسبتواندمستقیمابهکالسدیگرتبدیلشوند.دربیناینمتدهای،اضافهاپراتور()وجودداردکهاجازه
دسترسیمستقیمبهعناصرماتریسرامیدهد.بنابرایناگرimageارجاعیبهیکماتریسازنوعuchar،باشدمیتوان
نوشت:
•ازآنجاکهنوععناصرcv::Mat_درزمانایجادمتغیراعالنمی،شونداپراتور()درزمانکامپایلمیداندکهچهنوعیرا
بازگرداند.درواقعبااستفادهازاپراتور)(دقیقاهماننتیجهمتدatفراهممیشود.
5
سرداﺮﻓ
FaraDars.org
11. پردازشتصویربا
faradars.org/fvimg9405
نکته چند
•پیکسل تعداد بنابراینمی بدست زیر فرمول از سطر یک هایآید:
•اشاره محاسبات کردن ساده برایکالس ،گریcv: : Matمی ارائه را متدییک آدرس شما به مستقیما که دهد
می را تصویر سطردهد.که متد اینptrسطر آدرس که است الگو متد یک ،دارد نامjبرمی را امگرداند:
11
سرداﺮﻓ
FaraDars.org
12. پردازشتصویربا
faradars.org/fvimg9405
مثال
•رنگی تصویر یک بیایید256در256و کرده ایجاد
•بین آنها ستون و سطر اندیس که هایی پیکسل مقادیر0تا80برابر را باشد(0,0,255)
•بین آنها ستون و سطر اندیس که هایی پیکسل مقادیر80تا160برابر را باشد(0,255,0)
•بین آنها ستون و سطر اندیس که هایی پیکسل مقادیر160تا256برابر را باشد(255,0,0)دهیم قرار.
12
سرداﺮﻓ
FaraDars.org
22. پردازشتصویربا
faradars.org/fvimg9405
مثال
•واضح را تصویر که پردازشی تابع یک از ما ،عمل این بیان برای(sharp)کنیم می استفاده ،کند می.اینکار
عملگر براساسالپالسیناست.لب ،کنید کم تصویر خود از را تصویر یک الپالسین اگر حقیقت درتصویر های ه
شود می تولید تری واضح تصویر و شده تقویت.شود می محاسبه زیر صورت به سازی واضح عملگر این:
22
سرداﺮﻓ
FaraDars.org
29. پردازشتصویربا
faradars.org/fvimg9405
عملگرها سربارگذاری
•دربینآنهاعملگرهایبیتی&, |, ^, ~،توابعmin, maxوabsوعملگرهایمقایسهای<,
<=, ==,!=, >, >=وجوددارند.کهایندستهآخریکتصویر8بیتیباینریبرمیگرداند.
•همچنینمیتوانیدعملگرهایضربماتریسیm1*m2،وارونماتریسm1.inv()،ترانهاده
ماتریسm1.t()،دترمینانm1.determinant()،نرمبرداری, v1.norm()ضربخارجی
v1.cross(v2)،ضربداخلیv1.dot(v2)وازاینقبیلرامیتوانیدداشتهباشید.
•همچنینمیتوانیدعملگرop=(مثال+=)راتعریفکنید.
29
سرداﺮﻓ
FaraDars.org
31. پردازشتصویربا
faradars.org/fvimg9405
کانال کردن جداتصویر های
•خیلیوقتهامیخواهیمکانالهایمتفاوتیکتصویررابهصورتمستقلپردازشکنیم.
•برایمثالممکناستبخواهیدکهکاریراتنهاروییککانالتصویرانجامدهید.قطعامیتوانید
اینکارراازطریقیکحلقهپویشتصویرهمانجامدهید.
•امامیتوانیدازتابعcv::splitهمکهسهکانالیکتصویررنگیرادرسهنمونهمجزای
cv::Matکپیمی،کندراهماستفادهکنید.
•تابعcv::mergeدوگانعملقبلاست.یعنیاینتابعیکتصویررنگیراازسهتصویرتککانال
میسازد.
31
سرداﺮﻓ
FaraDars.org
46. پردازشتصویربا
faradars.org/fvimg9405
46
در شده مطرح نکات مبنای بر ها اسالید اینفرادرس
«با تصویر پردازش آموزش»
است شده تهیه.
به آموزش این مورد در بیشتر اطالعات کسب برایمراجعه زیر لینکنمایید.
faradars.org/fvimg9405
پردازشتصویربا
faradars.org/fvimg9405
سرداﺮﻓ
FaraDars.org