কম্পিউটার

C++ এ গাউসিয়ান ফিল্টার জেনারেশন


যেমন আমরা জানি গাউসিয়ান ফিল্টারিং ইমেজ প্রসেসিংয়ের ক্ষেত্রে প্রয়োগ করা খুবই কার্যকর। এটি একটি ছবির শব্দ কমাতে ব্যবহৃত হয়। এই বিভাগে আমরা দেখব কিভাবে একটি 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

  1. C++ এ এনক্যাপসুলেশন

  2. C++ এ শনাক্তকারী

  3. লিনাক্সে C++ এর সেরা IDE কি?

  4. লিনাক্সে c++ এর জন্য শীর্ষ IDE কি?