آموزش برنامه نویسی پایتون و پردازش تصویر - قسمت دوم مشاهده در قالب PDF چاپ فرستادن به ایمیل
نوشته شده توسط admin   
چهارشنبه, 24 شهریور 1395 ساعت 08:21

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

عامل، زبان برنامه نویسی و...، نحوه نصب کتاب‌خانه‌های لازم برای پایتون بر روی لینوکس آبونتو رو بررسی کردیم.

با نصب پایتون بر روی ویندوز فشرده نیز می‌توانید عملیات این آموزش را به ترتیب انجام داده و نتیجه مشابه‌ای بگیرید.

پس از نصب پایتون، نیاز به نصب کتاب‌خانه opencv بر روی سیستم تعبیه شده و لینوکس آبونتو است. به این منظور

لازم است که کتاب‌خانه مخصوص لینوکس را از لینک زیر دانلود کنید(هر نسخه جدیدتر نیز همین روند نصب را دارد).

پس از دانلود کتاب‌خانه opencv پیشنهاد می‌شود آن را در آدرس home/ قرار دهید.

http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3/

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

 

$ tar -xvf OpenCV-2.3.1a.tar.bz2
cd OpenCV-2.3.1/
یک فولدر به نام build ساخته و سپس به همان مسیر بروید(دو دستور زیر):
mkdir build
cd build
به منظور ساخت و آماده کردن opencv برای اجرا باید از دستور cmake استفاده کنید.
$ cmake -D WITH_TBB=ON -D BUILD_NEW_
PYTHON_SUPPORT=ON -D WITH_V4L=OFF-D
INSTALL_C_EXAMPLES=ON -D INSTALL_
PYTHON_EXAMPLES=ON -D BUILD_
EXAMPLES=ON ..
سپس در ترمینال به ترتیب دستور "make" و "sudo make install" را برای نصب کامل کتاب‌خانه تایپ
کرده و enter بزنید. در مرحله باید opencv را به عنوان کتاب‌خانه‌های به اشتراک گذاشته شده لینوکس
قرار دهیم تا سیستم بتواند به طور پیش فرض از آن استفاده کند(چیزی شبیه به system path در ویندوز).
به همین منظور باید دستور "sudo gedit /etc/ld.so.cong.d/opencv.conf" را زده و فایل تنظیمات opencv
را که باز شده است ویرایش کنید(ممکن است این فایل خالی باشد، مشکلی نیست ادامه دهید D:).
کافی است خط زیر را به انتهای برنامه اضافه کنید:
/usr/local/lib
اکنون فایل را بسته و دستور sudo ldconfig را تایپ کنید تا تنظیمات برای opencv ذخیره و لحاظ شوند. اکنون
باید فایل سیستمی bashrc را باز کنید(این فایل بر روی سیستم من در مسیر etc/bash.bashrc قردار دارد).
دستور باز کردن این فایل نیز به صورت sudo gedit /etc/bash.bashrc است. خطوط زیر را به انتهای این فایل اضافه کنید.
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:
/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
اکنون باید فایل را ذخیره کرده، ان را بسته و سیستم را راه اندازی دوباره یا ریستارت کنید.
پس از نصب پایتون و opencv در ادامه چندین مثال برای نحوه استفاده از کتاب‌خانه آموزش داده خواهند شد.
به همین منظور کدهای نوشته شده را از اینجا و تصویر نمونه را از عکس زیر می‌توانید دانلود کنید.
مثال1 : خواندن و نمایش یک تصویر(فایل test.py)
برای  اجرای این فایل کافی است توسط ترمینال به محل ذخیره فایل رفته و سپس دستور pythoh test.py را تایپ کنید.
برای توضیح عملکرد کد باید اضافه کرد که دستور import cv به منظور افزودن کتاب خانه opencv به برنامه و قابلیت
استفاده از توابع ان است. دستور cv.loadimage نیز با توجه به آرگومان ورودی که یک آدرس از تصویر است، آن را بارگذاری
کرده و در یک متغیر قرار می‌دهد. با دو دستور namedwindow و showimage به ترتیب نام پنجره ای که تصویر را نشان خواهد
داد مشخص کرده و سپس تصویر را نمایش می‌دهد. سپس به کمک دستور Waitkey به اندازه پانصد ثانیه منتظر مانده و با
دستور destroywindow پنجره نمایش داده شده خود به خود یا با زدن دکمه کاربر بسته خواهد شد.
مثال2 : تبدیل یک تصویر رنگی به تصویر خاکستری(فایل rgb2gray)
برای تبدیل یک تصویر رنگی به خاکستری از فایل rgb2gray.py می‌توانید استفاده کنید. هر تصویر رنگی از سه مولفه
قرمز-سبز-آبی یا به اصطلاح RGB تشکیل شده است که با تبدیل به تصویر خاکستری هر پیکس یک مقدار بین 0 تا 255
خواهد گرفت. دستور getsize که درون فایل پایتون مثال2 قرار داده شده است، طول و عرض یک تصویر را به عوان خروجی
بر میگرداند . createimage یک تصویر خالی با طول و عرض مشخص برای قرار دادن نتیجه در اختیار کاربر قرار می‌دهد.
در نهایت از تابع cvtcolor برای تبدیل تصویر رنگی به خاکستری استفاده شده است. نتیجه اجرای این کد به شکل زیر خواهد بود.
مثال3: رسم یک دایره بر روی تصویر(فایل circle.py)
می‌توان بر روی یک تصویر موراد دلخواهی نظیر اشکال، متن و ... اضافه کرد. فایل رسم دایره برای شما یک دایره رسم خواهد کرد. خط 12 برنامه از تابع circle برای رسم این دایره استفاده کرده است.
مثال4: اعمال فیلتر لاپلاسین-مشتق بر روی تصویر(فایل laplace.py)
این کد فیلتر لاپلاسین که یک ترکیب از مشتق‌گیری بر روی تصویر است را اعمال می‌کند. ویزگی فیلتر لاپلسین و فیلترهای مشتقی، قابلیت جداسازی لبه‌های یک تصویر است. به کمک این فیلتر قادر خواهید بود لبه های یک تصویر را به راحتی جدا کنید. در خط 10 برنامه، دستور cv.laplace فیلتر لاپلاسین را بر روی تصویر اعمال می‌کند. در خطوط برنامه از تابع Saveimage می‌توان به منظور ذخیره کردن نتیجه حاصل از فیلتر استفاده کرد.
فیلتر دیگری که برای استخراج لبه‌های تصویر بسیار استفاده می‌شود، فیلتر Canny است که فایلی به همین نام نیز وجود دارد. نتیجه مثال 3 و 4 در تصویر زیر به وضوح مشخص است. تصویر سمت چپ، نتیجه رسم دایره مثال3 و دو تصویر سمت راست نتیجه اعمال فیلترهای لاپلاسین و کنی هستند.

مثال5 : تشخیص چهره(فایل face.py)
با اجرای فایل face.py تصویری که برای نمونه است را برنامه تشخیص چهره خواهد داد. از هر تصویر دیگر(حتی عکس خودتان) برای تست برنامه می‌توانید استفاده کنید؛ برای این کار فقط کافی است فایل خود را و آدرس آن را در loadimage قرار دهید. برای تشخیص چهره از طبقه بند معروف پردازش تصویر هار(Harr) استفاده شده است. کتاب‌خانه opencv طبقه بندهای دیگر را نیز پیاده سازی کرده و شما به راحتی می‌توانید از ان ها استفاده کنید. هر چقدر برنامه را بیشتر و با تصاویر بیشتری اجرا کنید، طبقه هار بیشتر فراگرفته و تصاویر بیشتری را می تواند جدا کند. این طبقه در خط 9 برنامه ذخیره می شود و شما می توانید در استفاده های بعدی به جای بازسازی آن از ابتدا از طبقه بند آموزش دیده با دستوری مثل زیر استفاده کنید.
hc=cv.Load(“/home/jayneil/haarcascade_frontalface_default.xml”)
نتیجه خروجی برنامه، تصویری مثل شکل زیر خواهد بود.
*دقت داشته باشید که کدهای پایتون توضیح داده شده در ویندوز نیز به همین صورت قابل استفاده هستند.
سری سوم از آموزش پردازش تصویر را حتما دنبال کنید...ترکیب تشخیص چهره و سخت افزار... به زودی....
نظر ها (0)
تنها کاربران عضو شده می توانند نظر ارسال کنند!
آخرین بروز رسانی در چهارشنبه, 24 شهریور 1395 ساعت 12:28