#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <opencv2\imgproc\imgproc.hpp>
#include <iostream> void salt(cv::Mat& image, int n)
{ for(int k=; k<n; k++)
{ int i = rand() % image.cols;
int j = rand() % image.rows; // 灰度图像
if(image.channels() == )
{
cv::Mat_<uchar> img = image;
img(j,i) = ;
}else{// 彩色图像
cv::Mat_<cv::Vec3b> img = image;
//image.at<cv::Vec3b>(j,i)[0] = 255;
//image.at<cv::Vec3b>(j,i)[1] = 255;
//image.at<cv::Vec3b>(j,i)[2] = 255; img(j,i)[] = ;
img(j,i)[] = ;
img(j,i)[] = ;
} } } int main(int argc, char** argv)
{ cv::Mat img = cv::imread("F:\\images\\boldt.jpg");
cv::Mat img2 = img.clone(); double duration;
duration = static_cast<double>(cv::getTickCount()); salt(img, ); duration = static_cast<double>(cv::getTickCount()) - duration;
duration /= cv::getTickFrequency(); cv::namedWindow("original");
cv::imshow("original", img);
cv::namedWindow("altered");
cv::imshow("altered", img2); std::cout << duration << std::endl; cv::waitKey();
return ; }