دوربین های قدیمی فقط قادر به نمایش تصاویر مونوکروم یا تک رنگ بودند. درکل سنسور دوربین تنها شدت نور را ثبت میکند که شدت نور طیفی خاکستری ایجاد میکند.
ما با تصاویر خاکستری که نوعی از تصاویر مونوکروم هستند، کار خواهیم کرد.
تصاویر خاکستری فقط دارای یک کانال رنگی(۸بیتی) در مقیاس ۰ تا ۲۵۵ هستند که نشان دهنده روشنایی آن پیکسل است، ۰ کاملا تاریک (سیاه) و ۲۵۵ کاملا روشن (سفید) است.
وقتی فیلتر های رنگی بر روی سنسور دوربین قرار میگیرد به ازای هر رنگ قرمز ، ابی یا سبز ، یک شدت نور جدا (خاکستری) درست میکنند که با ترکیب آنها با هم عکسهای رنگی ایجاد میشوند.
تصویر زیر مثال خیلی خوبی از کانالهای مختلف تصویر رنگیاست، که با یکی از نرم افزار های ویرایش عکس که من از gimp استفاده کردم را ببینید. در واقع با ترکیب کانالهای سمت راست، تصویر رنگی سمت چپ ایجاد میشود:
مثلا به رنگ سبز دقت کنید، فقط قسمتی که رنگ سبز داریم سفید وبقیه قسمتها سیاه است. کانال سبز یک کانال ۸ بیتی که به صورت [۰,۲۵۵,۰]:rgb مقدار دهی میشود و نشان دهنده این است که هر چه شدت نور به سمت ۲۵۵ باشد رنگ سبز بیشتر و هر چه به سمت ۰ باشد رنگ سبز کمتری داریم و در مورد کانالهای دیگر هم همین استدلال را میشه کرد.
تبدیل تصویر به مقیاس خاکستری به ما یک آرایه دو بعدی و تنها یک کانال که ۸ بیت باشد میدهد. یک جورایی پردازش راحتر و سریع تر و زوم روی یک کانال خاص است.
import numpy as np
import cv2
import matplotlib.pyplot as plt
img = cv2.imread(‘test.jpg’)
gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
plt.imshow(cv2.cvtColor(gray_img, cv2.COLOR_GRAY2RGB))
plt.show()