OpenCV-এ ছবি ডিফল্টভাবে BGR রঙ প্রান্তরে লোড হয়। কম্পিউটার ভিশন টাস্কে ভিন্ন রঙ প্রান্তর (Color Space) ব্যবহার করা হয়—যেমন: গ্রेস্কেল, HSV, YCrCb, LAB ইত্যাদি। নিচে কনভার্সন এবং ভিজ্যুয়ালাইজেশনের উদাহরণ দেওয়া হলো।
প্রয়োজনীয় লাইব্রেরি
import cv2 import matplotlib.pyplot as plt
১. RGB এ লোড এবং দেখানো (Matplotlib-এ RGB আশা করা হয়)
img = cv2.imread('download.png') # BGR-এ লোড হয়
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # RGB-এ কনভার্ট
plt.imshow(img_rgb)
plt.title('RGB Color Space')
plt.axis('off')
plt.show()
২. গ্রেস্কেল (Grayscale)
# সরাসরি গ্রেস্কেল লোড
img_gray = cv2.imread('download.png', 0) # cv2.IMREAD_GRAYSCALE
# অথবা BGR থেকে কনভার্ট
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Grayscale', img_gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
৩. YCrCb রঙ প্রান্তর (ভিডিও কম্প্রেশন, স্কিন ডিটেকশনে ব্যবহার)
img_ycrcb = cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb)
cv2.imshow('YCrCb', img_ycrcb)
cv2.waitKey(0)
cv2.destroyAllWindows()
৪. HSV রঙ প্রান্তর (রঙ-ভিত্তিক সেগমেন্টেশন, অবজেক্ট ট্র্যাকিং)
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
cv2.imshow('HSV', img_hsv)
cv2.waitKey(0)
cv2.destroyAllWindows()
৫. হিটম্যাপ এবং স্পেকট্রাল ম্যাপ (Matplotlib colormap)
# হিটম্যাপ (তাপমাত্রা/ঘনত্ব ভিজ্যুয়ালাইজেশন)
plt.imshow(img, cmap='hot')
plt.colorbar()
plt.title('Heatmap')
plt.show()
# স্পেকট্রাল ম্যাপ
plt.imshow(img, cmap='nipy_spectral')
plt.colorbar()
plt.title('Spectral')
plt.show()
রঙ প্রান্তর চেইট শিট
| রঙ প্রান্তর | OpenCV কোড | প্রধান ব্যবহার |
|---|---|---|
| BGR → RGB | cv2.COLOR_BGR2RGB | Matplotlib/ウェブ প্রদর্শন |
| BGR → Gray | cv2.COLOR_BGR2GRAY | এজ ডিটেকশন, থ্রেশোল্ডিং |
| BGR → HSV | cv2.COLOR_BGR2HSV | রঙ সেগমেন্টেশন, ট্র্যাকিং |
| BGR → YCrCb | cv2.COLOR_BGR2YCrCb | স্কিন ডিটেকশন, জিপিইজি কম্প্রেশন |
| BGR → LAB | cv2.COLOR_BGR2LAB | রঙ ব্যালেন্সিং, ক্লাস্টারিং |
সতর্কতা: OpenCV
imshow() BGR এক্সপেক্ট করে, কিন্তু Matplotlib imshow() RGB এক্সপেক্ট করে। Matplotlib-এ দেখানোর আগে সবসময় cvtColor(img, COLOR_BGR2RGB) করুন।