تشخیص رنگ با استفاده از OpenCV و Python

در این پست قصد دارم با استفاده از OpenCV 3.0 و محیط برنامه نویسی Python 2.7، برنامه ای برای تشخیص رنگ بنویسم. ساده ترین روشی که برای این کار می توان به کار برد استفاده از دستور inRange برای ساخت یک ماسک برحسب رنگ مورد نظر و اعمال آن توسط دستور bitwise_and است. در این برنامه، هدف تشخیص سه رنگ اصلی آبی، قرمز و سبز است.

 

در ابتدا پکیج های مورد نیاز را فراخوانی می کنیم. Numpy برای Numerical Processing و cv2 برای OpenCV است.

سپس عکس مورد نظر را بازگذاری می کنیم. و ابعاد ان را به 300 پیکسل تغییر می دهیم (این کار دلخواه است و می توان از آن صرف نظر کرد).

در این قسمت حد بالا و پایین را برای هر سه رنگ قرمز، آبی و سبز بر حسب BGR بدست می آوریم. برای تبدیل می توانید از این سایت استفاده کنید.

هرکدام را به صورت آرایه ای از نوع uint8 تعریف می کنیم.

 

 

در مرحله بعدی با استفاده از دستور inRange برای هر رنگ یک ماسک می سازیم. این دستور هر رنگی که در محدوده تعریف شده باشد را به رنگ سفید و بقیه را به رنگ سیاه تبدیل می نماید.

حال باید ماسک را به تصویر اصلی اعمال کنیم. برای این کار از دستور bitwise_and استفاده خواهیم کرد. این دستور متغیر image را با خودش و بر حسب ماسکی که قبلاً ساختیم AND می کند. بدین ترتیب هرکجا که در ماسک سفید باشد، تثویر اصلی نشان داده می شود و هر کجا که ماسک سیاه باشد، تصویر حذف و سیاه می شود.

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

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

منبع:وبسایت آقای خوش نظر

mehdi sehati

در این سایت پروژه و آموزش های انواع ماژول ها و میکروکنترلر ها و نحوه ارتباط سخت افزار با نرم افزار (برنامه نویسی اندروید برای گوشی و برنامه نویسی سی شارپ برای کامپیوتر) و برنامه نویسی پایتون و رسبری پای و ماژول های وای فای قرار میگیرد همچنین دوستان برای توضیحات بیشتر و سفارش پروژه میتوانند به آی دی تلگرام بنده مراجعه کنند

مطالب مرتبط

دیدگاه بگذارید

avatar
فارسی سازی پوسته توسط: همیار وردپرس