যেমন আমরা জানি গাউসিয়ান ফিল্টারিং ইমেজ প্রসেসিংয়ের ক্ষেত্রে প্রয়োগ করা খুবই কার্যকর। এটি একটি ছবির শব্দ কমাতে ব্যবহৃত হয়। এই বিভাগে আমরা দেখব কিভাবে একটি 2D গাউসিয়ান কার্নেল তৈরি করা যায়। 2D কার্নেল তৈরির জন্য গাউসিয়ান ডিস্ট্রিবিউশন নিম্নরূপ।
$$G(x,y)=\frac{1}{2\Pi\:\sigma^{2}}e^{\frac{x^{2}+y^{2}}{2\sigma^ {2}}$$
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <cmath> #include <iomanip> #include <iostream> #define PI 3.1415 using namespace std; void calc_filter(double kernel[][5]) { double sigma = 1.0; double p, q = 2.0 * sigma * sigma; double sum = 0.0; for (int x = -2; x <= 2; x++) { for (int y = -2; y <= 2; y++) { p = sqrt(x * x + y * y); kernel[x + 2][y + 2] = (exp(-(p * p) / q)) / (PI * q); sum += kernel[x + 2][y + 2]; } } for (int i = 0; i < 5; i++) for (int j = 0; j < 5; j++) kernel[i][j] /= sum; } int main() { double kernel[5][5]; calc_filter(kernel); for (int i = 0; i < 5; ++i) { for (int j = 0; j < 5; ++j) cout << kernel[i][j] << " "; cout << endl; } }
আউটপুট
0.00296902 0.0133062 0.0219382 0.0133062 0.00296902 0.0133062 0.0596343 0.0983203 0.0596343 0.0133062 0.0219382 0.0983203 0.162103 0.0983203 0.0219382 0.0133062 0.0596343 0.0983203 0.0596343 0.0133062 0.00296902 0.0133062 0.0219382 0.0133062 0.00296902