تشخیص و جدا کردن رنگ های سبز ، زرد و قرمز در پایتون

به نام خدا

سلام

امیدوارم حالتون خوب باشه

توی این جلسه میخوایم به پردازش تصویر در پایتون بپردازیم



تشخیص و جدا کردن یعنی چی؟:

ما میخوایم برنامه ای بنویسیم که که از داخل یک عکس تمام چیز هایی که به رنگ های سبز و زرد و قرمز هستند رو جدا کنه و برای ما سیو کنه

البته به صورت جدا یعنی توی یک برنامه هر سه تا رنگ رو با هم جدا نمیکنه(البته با یکم کد نویسی بیشتر میشه)




کد های تشخیص و کراپ کردن رنگ قرمز:

import cv2
import numpy as np

image = cv2.imread(&quotred.png&quot)                
HSVcolor = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

light_red = np.array([100,100,70])
dark_red = np.array([255,255,255])

mask = cv2.inRange(HSVcolor, light_red, dark_red)

output = cv2.bitwise_and(image,image, mask= mask)

cv2.imshow(&quotred detection&quot, np.hstack((image, output)))
cv2.waitKey(0)
cv2.destroyAllWindows()

توضیحات کد های رنگ قرمز:

توی خط چهارم(۴) معلوم کردیم که چه عکسی رو پردازش کنه.

توی خط پنجم(۵) هم hsv(Hue، Saturation، Value) رو معلوم کردیم که توی پست های بعدی بیشتر دربارش توضیح میدم.

و همچنین توی خط های 7 و 8 روشن ترین رنگ قرمز و پررنگ ترین قرمز رو معلوم کردیم.(که برای هر رنگ فرق داره)

توی خط دهم(۱۰) بازه رو معلوم کردیم، دلیل این کار بخاطر این بود که یک وقت برنامه رنگ های دیگه رو تشخیص نده و داخل یک بازه معلوم کارش رو انجام بده.

داخل خط دوازدهم(۱۲) خروجی رو معلوم کردیم یعنی رنگ های کم رنگ و پررنگ قرمز و همینطور محدوده رو توی خروجی معلوم کردیم.

توی خط چهاردهم یعنی داخل بخش imshow که معمولا داخلش مشخصات پنجره رو معلوم میکنن توی قسمت دومش با کمک کتابخانه numpy و دستور hstack عکس اصلی و خروجی رو کنار هم قرار دادیم.

و همینطور در خط پانزدهم با دستور waitkey معلوم کردیم که هر کلیدی زده شد متوقف شو.

نکته:

اگر بخواهید برنامه خروجی را برای شما ذخیره کنید باید از دستور imwrite استفاده کنید ، به این صورت:

cv2.imwrite(output)

که ترجیحا در آخر برنامه این قطعه کد را قرار دهید.


عکسی که به برنامه دادیم:

خروجی:

توضیحات خروجی:

خب همینطور که میبینید تمام رنگ های قرمز رو از عکس جدا کرد

البته این برای رنگ قرمز بود



کد های تشخیص و کراپ کردن رنگ آبی:

import cv2
import numpy as np

image = cv2.imread(&quotblue.png&quot) 
HSVcolor = cv2.cvtColor(image, cv2.COLOR_BGR2HSV_FULL)

light_blue = np.array([102,0,0])
dark_blue = np.array([255,255,255])

mask = cv2.inRange(HSVcolor, light_blue, dark_blue)

output = cv2.bitwise_and(image,image, mask= mask)

cv2.imshow(&quotblue detection&quot, np.hstack((image,output)))
cv2.waitKey(0)
cv2.destroyAllWindows()

توضیحات کد های رنگ آبی:

توضیحات در بخش رنگ قرمز داده شده اند فقط باید اینجا اضافه کنم که فقط خط های ۷ و ۸ کد ها با هم فرق میکنند.

نکته:

اگر میخواهید عکس خروجی برایتان ذخیره شود باید از دستور imwrite استفاده کنید ، به این صورت:

cv2.imwrite(output)

که ترجیحا آخر برنامه استفاده شود

عکسی که به برنامه دادیم:

خروجی:

توضیحات خروجی:

برنامه رنگ های آبی را از عکس جدا کرده و در کنار عکس نشان می دهد.



کد های تشخیص و کراپ کردن رنگ سبز:

import cv2
import numpy as np

image = cv2.imread('green.png')
HSVcolor = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

light_green = np.array([50, 100, 100 ])
dark_green = np.array([100, 255, 255])

mask = cv2.inRange(HSVcolor, light_green, dark_green)

output = cv2.bitwise_and(image, image, mask=mask)

cv2.imshow(&quotgreen detection&quot, np.hstack((image, output)))
cv2.waitKey(0)
cv2.destroyAllWindows()

توضیحات کد های رنگ سبز:

توضیحات را در رنگ های ابی و قرمز دادم فقط خطوط ۷ و ۸ در ۳ تا برنامه فرق داره که محدوده ی رنگشه


نکته:

اگر میخواهید خروجی برایتان ذخیره شود باید از دستور imwrite استفاده کنید ، به این صورت:

cv2.imwrite(output)

که آخر برنامه استفاده شود بهتر است.

عکسی به برنامه دادیم:

خروجی:

توضیحات خروجی:

دیگه خودتون دارید خروجی رو میبینید ، دیگه دستام تاول زد بقرآن ?



ببین داداش تا اینجا که اومدی یعنی از مطلب خوشت اومده(احتمالا)

پس لایک کن

تا آموزش بعدی خدانگهدار