opencv模拟椒盐噪声

    技术2026-04-12  7

    // opencv8_makesalt.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> using namespace cv; using namespace std; //debug下在lib文件的名称后加d,release下不加d。 void salt(Mat& image, int n) { for (int k = 0; k < n; k++) { int i = rand() % image.cols; int j = rand() % image.rows; if (image.channels() == 1) { //判断是一个通道 image.at<uchar>(j, i) = 255; } else { image.at<cv::Vec3b>(j, i)[0] = 255; image.at<cv::Vec3b>(j, i)[1] = 255; image.at<cv::Vec3b>(j, i)[2] = 255; } } } int main() { Mat src = imread("../res/lena.jpg"); //一个点代表省略当前文件夹路径,两个点则代表回到上一个文件夹路径 if (src.data == NULL) { std::cout << "image read is null" << std::endl; return -10; } /*namedWindow("【原图】", WINDOW_AUTOSIZE);*/ imshow("【原图】", src); Mat dst = src.clone(); salt(dst, 30000); imshow("【椒盐噪声效果图】", dst); waitKey(0); return 0; }

    Processed: 0.013, SQL: 9