جلسه چهارم: برنامه ساده برای خواندن از دوربین، تغییر فضای رنگی و ناحیه بندی رنگی در اپن سی وی (با پایتون)

جلسه چهارم: برنامه ساده برای خواندن از دوربین، تغییر فضای رنگی و ناحیه بندی رنگی در اپن سی وی (با پایتون)

  buy_icon  

در این پست سعی دارم، نحوه خواندن تصویر از دوربین کامپیوتر (Webcam)، تغییر فضای رنگی بین HSV و RGB، سگمنت بندی براساس رنگ (ترکینگ شی رنگی) را با آوردن یک برنامه کلی در openCV نشان دهم.

 

خواندن از دوربین در اپن سی وی:

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

cap = cv2.VideoCapture(0)

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

با دستور cap.read() می توان فریم ها را دریافت کرد. این دستور دو مقدار برمی گرداند، اولین مقدار True یا  False بودن دریافت است و مقدار دوم فریم خوانده شده است. بنابراین برای دریافت فریم به طور پیوسته لازم است تا از آن در یک حلقه استفاده شود.

 

تغییر فضای رنگ در اپن سی وی:

تغییر فضای رنگ تصویر در اپن سی وی با استفاده از تابع cv2.cvtColor صورت می گیرد. آرگومان اول این تابع مربوط به تصویر ورودی است و آرگومان دوم مربوط به نوع تبدیل است، که می تواند به صورت های متنوعی باشد که در این مطلب تنها تبدیل از فضای hsv به rgb و بالعکس مورد نیاز است. که به صورت یکی از دو حالت زیر می شود:

COLOR_BGR2HSV یا COLOR_HSV2BGR

(* دقت شود در اپن سی وی تعریف لایه های رنگی به ترتیب BGR است نه RGB)

 

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

lower_red = np.array([0*179/360,50*255/100,50*255/100])

upper_red = np.array([10*179/360,100*255/100,255*255/100])

چون در فضای رنگی HSV هستیم و هر رنگ سه مقدار دارد از دستور np.array برای مقدار دهی استفاده کرده ایم.

در نهایت با فشردن کلید s تصاویر ذخیره می شود و با زدن کلید esc از برنامه خارج می شود.

 

color-track

 

 

در صورت استفاده از مطالب این سایت لطفا به سایت ارجاع دهید

دیدگاه شما

( الزامي )

(الزامي)