গ্রে স্কেল ইমেজে পিক্সেল মান একক সংখ্যা, কিন্তু RGB ইমেজে তিনটি চ্যানেলের ভেক্টর। এই আর্টিকেলে 'at' মেথড ব্যবহার করে উভয় ধরণের ইমেজে নয়েজ যোগ করার পদ্ধতি দেখানো হয়েছে।
উদাহরণ কোড
#include <iostream>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
void adding_Noise(Mat& image, int n) {
for (int x = 0; x < n; x++) {
int i = rand() % image.cols;
int j = rand() % image.rows;
if (image.channels() == 1) { // গ্রে স্কেল ইমেজ
image.at<uchar>(j, i) = 0;
}
if (image.channels() == 3) { // RGB ইমেজ
image.at<Vec3b>(j, i)[0] = 0; // Blue
image.at<Vec3b>(j, i)[1] = 0; // Green
image.at<Vec3b>(j, i)[2] = 0; // Red
}
}
}
int main() {
Mat image, unchanged_Image;
image = imread("sky.jpg");
unchanged_Image = imread("sky.jpg");
namedWindow("Noisy Image");
namedWindow("Unchanged Image");
adding_Noise(image, 4000);
imshow("Noisy Image", image);
imshow("Unchanged Image", unchanged_Image);
waitKey(0);
destroyAllWindows();
return 0;
}
আউটপুট

প্রোগ্রামটি চ্যানেল সংখ্যা চেক করে স্বয়ংক্রিয়ভাবে গ্রে স্কেল বা RGB ইমেজ হ্যান্ডেল করে।