通过改变图片随机坐标点上的像素值,将像素值设为白色,从而在图片上面产生随机的白色点。
一、代码:
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
#define POINTSNUM 2000
void salt(cv::Mat image, int n)
{
int i, j;
//循环n次改变n个点,都设为白色
for (int k = 0; k < n; ++k)
{
i = std::rand() % image.rows;
j = std::rand() % image.cols;
if (image.type() == CV_8UC1)
{
image.at<uchar>(i, j) = 255;
}
else if (image.type() == CV_8UC3)
{
image.at<cv::Vec3b>(i, j)[0] = 255; //蓝色 设为 白色
image.at<cv::Vec3b>(i, j)[1] = 255; //绿色 设为 白色
image.at<cv::Vec3b>(i, j)[2] = 255; //红色 设为 白色
}
}
}
//----------------------------【main函数】------------------------------------------------
// 描述:控制台应用程序的入口函数,我们的程序从这里开