رزبری پای نرم افزار پردازش تصویر پروژه رزبری پای

آموزش پردازش تصویر OpenCV با رزبری پای – کار با موس و ترکبار ها

OpenCV-part4-with-raspberry-pi-digispark-
نوشته شده توسط آرش کدخدایی

در بخش قبلی آموزش پردازش تصویر با نرم افزار 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()

 

آموزش پردازش تصویر با Opencv بخش چهارم با برد رزبری پای - دیجی اسپارک

برای یک مثال پیشرفته تر به کد زیر دقت کنید.

 

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

 

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

 

این برنامه با نگه داشتن کلید سمت چپ موس و کشیدن آن به جایی و رها کردنش یک مستطیل رسم می‌کند. با فشار دادن کلید M حالت رسم عوض شده و حالا دوایری کنار هم رسم می‌کند که از دور یک خط به نظر میرسد.

آموزش پردازش تصویر با Opencv و برد رزبری پای بخش 4 - دیجی اسپارک

 


کار با ترکبارها Trackbar


دو تابع مورد استفاده در این قسمت عبارتند از:

cv2.getTrackbarPos()
cv2.createTrackbar()

با یک مثال به معرفی این توابع می‌پردازیم. یک برنامه ساده جهت مشخص کردن رنگی خاص را نشان می‌دهیم. برای اینکار یک پنجره‌ای تعریف می‌کنیم که دارای یک قسمت برای نمایش رنگ و سه ترکبار برای مشخص کردن B، G، R است. با ترکیب این ۳ می‌توانید به یک رنگ دلخواه برسید. برای تابع cv2.getTrackbarPos() اولین آرگومان نام ترکبار است. دومین نام پنجره است که به آن متصل شده است، آرگومان سوم مقدار پیش فرض ترکبار است. آرگومان چهارم حداکثر مقدار آن و پنجم هر بار مقدار trackbar تغییر می‌کند یک تابع را فراخوانی می‌کند. یکی دیگر از کاربردهای ترکبارها Trackbar استفاده آنها به عنوان دکمه است. چون opencv بصورت پیش فرض عملکرد دکمه را ندارد پس ما می‌توانیم با ساخت یک ترکبار که دارای مقادیر ۰ یا ۱ است چنین قابلیتی را استفاده کنیم. به کد برنامه زیر دقت کنید.

 

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

 

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

 

حال با مخلوط اینها با برنامه‌هایی که در آینده توسعه خواهید داد. برنامه‌ها و عملکردهای جذابی خواهید ساخت.

آموزش پردازش تصویر با Opencv بخش چهارم با برد رزبری پای - دیجی اسپارک

 

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

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک و دانشجوکیت  و digispark  و  daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

آرش کدخدایی

یک تازه کار علاقه مند به تکنولوژی :)

تبادل نظر و رفع عیب با ثبت دیدگاه