OpenCV ইমেজ প্রসেসিংয়ের জন্য পাইথনের সেরা প্যাকেজের একটি। সিগন্যালের মতো ছবিও নויז বা শব্দ ধারণ করে, মূলত উত্স থেকে (ক্যামেরা সেন্সর)। পাইথন OpenCV প্যাকেজ ইমেজ سمूदিং বা ব্লার করার পদ্ধতি দেয়। এটি আমরা এই সেকশনে করব। একটি সাধারণ টেকনিক হল গাউসিয়ান ফিল্টার (Gf) ব্যবহার করে ইমেজ ব্লার করা। এর মাধ্যমে ইমেজের শার্প এজগুলো স্মूद হয় অতি ব্লার না হয়।
সিনট্যাক্স (Syntax)
cv.GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType=BORDER_DEFAULT]]])
যেখানে:
src – ইনপুট ইমেজ
dst – আউটপুট ইমেজ
ksize – গাউসিয়ান কার্নেল সাইজ [height width]। যদি ksize [0 0] সেট করা হয়, তবে ksize সিগমা মান থেকে কম্পিউট করা হয়।
sigmaX – X-অক্ষ (হরিজন্টাল ডিরেকশন) এর সাথে কার্নেল স্ট্যান্ডার্ড ডেভিয়েশন।
sigmaY – Y-অক্ষ (ভার্টিক্যাল ডিরেকশন) এর সাথে কার্নেল স্ট্যান্ডার্ড ডেভিয়েশন।
BorderType – ইমেজ বর্ডারে কার্নেল প্রয়োগ করার সময় ইমেজ বাউন্ডারি স্পেসিফাই করে। কিছু সম্ভাব্য মান: cv.BORDER_CONSTANT, cv.BORDER_REPLICATE, cv.BORDER_REFLECT, cv.BORDER_WRAP, cv.BORDER_DEFAULT, cv.BORDER_ISOLATED, cv.BORDER_TRANSPARENT ইত্যাদি।
নিচে OpenCV প্যাকেজ ব্যবহার করে গাউসিয়ান ব্লার করার প্রোগ্রাম দেওয়া হলো।
import cv2
import numpy
# ইমেজ পড়া
src = cv2.imread('LionKing.jpeg', cv2.IMREAD_UNCHANGED)
# src ইমেজে গাউসিয়ান ব্লার প্রয়োগ
dst = cv2.GaussianBlur(src, (3, 3), cv2.BORDER_DEFAULT)
# ইনপুট ও আউটপুট ইমেজ ডিসপ্লে
cv2.imshow("Gaussian Blur", numpy.hstack((src, dst)))
cv2.waitKey(0)
# কী প্রেস না হওয়া পর্যন্ত অপেক্ষা
cv2.destroyAllWindows()
# ইমেজ শো করার উইন্ডো ধ্বংস করে
রেজাল্ট

দুই ইমেজ প্রায় একই দেখাচ্ছে (অরিজিনাল/ব্লার)। এখন কার্নেল সাইজ বড় করি এবং রেজাল্ট পর্যবেক্ষণ করি।
dst = cv2.GaussianBlur(src, (13, 13), cv2.BORDER_DEFAULT)

এখন দুটি ইমেজের মধ্যে স্পষ্ট পার্থক্য দেখা যাচ্ছে।