অধ্যায়Phase 2 · কোর ইমেজ প্রসেসিং
2.4 12 মিনিট পড়া
Gaussian, Median, Bilateral Blur
Noise কমানোর কৌশল।
🎬 গল্প দিয়ে শুরু
কম আলোয় তোলা ছবি দানা-দানা (noise) — কিন্তু blur করলেই detail মুছে যায়। তিনটি smart blur জানলে আপনি যেকোনো noisy ছবি বাঁচাতে পারবেন — Gaussian, Median, Bilateral।
১. Gaussian Blur — সবচেয়ে জনপ্রিয়
কেন্দ্রের pixel বেশি weight পায়, দূরের কম। ফলে natural blur হয়।
python
import cv2
img = cv2.imread("noisy.jpg")
g1 = cv2.GaussianBlur(img, (5,5), sigmaX=1)
g2 = cv2.GaussianBlur(img, (15,15), sigmaX=5)kernel size oddদ হতে হবে
(3,3), (5,5), (7,7) — odd size, কারণ একটি স্পষ্ট কেন্দ্র দরকার। sigma = 0 দিলে OpenCV নিজেই size থেকে হিসাব করে।
২. Median Blur — salt & pepper killer
প্রতিটি pixel-কে তার চারপাশের pixel-দের median দিয়ে replace করে। Outlier (সাদা/কালো দাগ) সম্পূর্ণ মুছে যায়।
python
import cv2
img = cv2.imread("sp_noise.jpg")
clean = cv2.medianBlur(img, 5)কখন median?
Old scanned document, security camera-এ pixel-level dot noise, satellite image — median অসাধারণ কাজ করে।
৩. Bilateral Filter — edge রেখে blur
সাধারণ blur edge-ও ঝাপসা করে। Bilateral filter দুটি weight বিবেচনা করে — (১) দূরত্ব, (২) color difference। একই color-এর pixel-ই শুধু একে অপরকে blur করে। ফলে edge অক্ষুণ্ণ — perfect for skin smoothing।
python
import cv2
img = cv2.imread("portrait.jpg")
smooth = cv2.bilateralFilter(img, d=9, sigmaColor=75, sigmaSpace=75)
cv2.imwrite("skin_smooth.jpg", smooth)Slow!
Bilateral computationally expensive — real-time video-তে diameter ছোট রাখুন (d=5) অথবা downscale করে process করুন।
তুলনামূলক
| Filter | Edge রাখে? | Best for | Speed |
|---|---|---|---|
| Gaussian | না (smooth করে) | General blur, pre-processing | দ্রুত |
| Median | মোটামুটি | Salt & pepper noise | মাঝারি |
| Bilateral | হ্যাঁ | Skin, cartoon, edge-aware smoothing | ধীর |
প্র্যাকটিস টাস্ক
- একটি ছবিতে নিজে np.random দিয়ে salt-pepper noise যোগ করুন, তিন filter দিয়ে compare করুন।
- একটি portrait-এ bilateral দিয়ে skin smooth করে নিজের mini “beauty filter” বানান।
- Gaussian + threshold combo দিয়ে document image পরিষ্কার করুন।
সারসংক্ষেপ
- Gaussian = সাধারণ smoothing; pre-processing-এর default।
- Median = dot/spike noise removal-এ অপ্রতিদ্বন্দ্বী।
- Bilateral = edge রেখে blur — slow কিন্তু সুন্দর।
- সঠিক filter নির্ভর করে noise-এর ধরনের উপর।