'at' মেথডে পিক্সেল অ্যাক্সেস করার সময় ইমেজ টাইপ নির্দিষ্ট করতে হয়। Direct Access মেথডটি আরও সহজ। এখানে Mat<Vec3b> বা অন্য টাইপ ডিক্লেয়ার করে সরাসরি পিক্সেল ম্যানিপুলেশন করা যায়। নিচের প্রোগ্রামটি র্যান্ডমলি ৪০০০টি পিক্সেলকে কালো (০) করে নয়েজ তৈরি করে।
উদাহরণ কোড
#include <iostream>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
void direct_access(Mat_<Vec3b> &image, int n) {
for (int x = 0; x < n; x++) {
int i = rand() % image.cols; // র্যান্ডম কলাম
int j = rand() % image.rows; // র্যান্ডম সারি
image(j, i) = 0; // পিক্সেলকে কালো করুন (সभी চ্যানেল ০)
}
}
int main() {
Mat_<Vec3b> image;
Mat unchanged_Image;
image = imread("sky.jpg");
unchanged_Image = imread("sky.jpg"); // মূল ছবি সংরক্ষণ
namedWindow("Noisy Image");
namedWindow("Unchanged Image");
direct_access(image, 4000); // ৪০০০টি পিক্সেলে নয়েজ যোগ
imshow("Noisy Image", image);
imshow("Unchanged Image", unchanged_Image);
waitKey(0);
return 0;
}
আউটপুট

বাম পাশে নয়েজযুক্ত ছবি এবং ডান পাশে মূল ছবি দেখা যাচ্ছে।