در بخش قبلی آموزش پردازش تصویر با نرم افزار OpenCV به معرفی توابع رسم پرداختیم. در این بخش و چهارمین قسمت از آموزش به کار با موس و ترکبارها در نرم افزار OpenCV میپردازیم. در ادامه آموزش پردازش تصویر OpenCV رزبری پای با دیجی اسپارک، مرجع تخصصی رزبری پای به زبان فارسی همراه باشید.
توابع کار با موس در OpenCV
ابتدا یک تابع فراخوانی موس ایجاد میکنیم. تا به هنگام انجام یک رویداد موس، اجرا شود. رویداد موس میتواند هر چیزی مربوط به موس مانند کلیک دکمه سمت چپ، دوبار کلیک دکمه سمت چپ و غیره باشد. در این روش مختصات (x، y) را برای هر رویداد خواهیم داشت. به کمک رویداد موس و مختصات X , Y فعالیتهای مد نظر را میتوانیم انجام دهیم. برای موس از رویدادهای زیر میتوانید در OpenCV استفاده کنید:
EVENT_LBUTTONDBLCLK EVENT_LBUTTONDOWN EVENT_LBUTTONUP EVENT_MBUTTONDBLCLK EVENT_MBUTTONDOWN EVENT_MBUTTONUP EVENT_MOUSEHWHEEL EVENT_MOUSEMOVE EVENT_MOUSEWHEEL EVENT_RBUTTONDBLCLK EVENT_RBUTTONDOWN EVENT_RBUTTONUP
ایجاد تابع فراخوانی موس یک فرمت خاص دارد و در همه جا یکسان است. و فقط و فقط در عملکرد متفاوت است. در برنامه زیر عملکرد Callback موس، یک دایره توسط دوبار کلیک کردن، ترسیم میکند. برای فهم بیشتر به کد زیر دقت کنید:
import cv2 import numpy as np # تابعی که میخواهیم با دوبار کلیک اجرا کنیم def draw_circle(event,x,y,flags,param): if event == cv2.EVENT_LBUTTONDBLCLK: cv2.circle(img,(x,y),100,(255,0,0),-1) # ساخت یک صفحه سیاه و نمایش آن img = np.zeros((512,512,3), np.uint8) cv2.namedWindow('image') cv2.setMouseCallback('image',draw_circle) while(1): cv2.imshow('image',img) if cv2.waitKey(20) & 0xFF == 27: break cv2.destroyAllWindows()
برای یک مثال پیشرفته تر به کد زیر دقت کنید.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
این برنامه با نگه داشتن کلید سمت چپ موس و کشیدن آن به جایی و رها کردنش یک مستطیل رسم میکند. با فشار دادن کلید M حالت رسم عوض شده و حالا دوایری کنار هم رسم میکند که از دور یک خط به نظر میرسد.
کار با ترکبارها Trackbar
دو تابع مورد استفاده در این قسمت عبارتند از:
cv2.getTrackbarPos() cv2.createTrackbar()
با یک مثال به معرفی این توابع میپردازیم. یک برنامه ساده جهت مشخص کردن رنگی خاص را نشان میدهیم. برای اینکار یک پنجرهای تعریف میکنیم که دارای یک قسمت برای نمایش رنگ و سه ترکبار برای مشخص کردن B، G، R است. با ترکیب این ۳ میتوانید به یک رنگ دلخواه برسید. برای تابع cv2.getTrackbarPos() اولین آرگومان نام ترکبار است. دومین نام پنجره است که به آن متصل شده است، آرگومان سوم مقدار پیش فرض ترکبار است. آرگومان چهارم حداکثر مقدار آن و پنجم هر بار مقدار trackbar تغییر میکند یک تابع را فراخوانی میکند. یکی دیگر از کاربردهای ترکبارها Trackbar استفاده آنها به عنوان دکمه است. چون opencv بصورت پیش فرض عملکرد دکمه را ندارد پس ما میتوانیم با ساخت یک ترکبار که دارای مقادیر ۰ یا ۱ است چنین قابلیتی را استفاده کنیم. به کد برنامه زیر دقت کنید.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
حال با مخلوط اینها با برنامههایی که در آینده توسعه خواهید داد. برنامهها و عملکردهای جذابی خواهید ساخت.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
پروژه و دریافت بن ارسال رایگان
برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکههای اجتماعی از جمله آپارات و اینستگرام، با هشتگهای دیجی_اسپارک و دانشجوکیت و digispark و daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.