天天看點

opencv2 椒鹽噪點salt

#include <opencv2\highgui\highgui.hpp>  
#include <opencv2\imgproc\imgproc.hpp>  
#include <opencv2\core\core.hpp> 
#include <cstdlib>
#include <iostream>  
  
using namespace std;  
using namespace cv;  
 

//椒鹽噪點産生函數
void salt(cv::Mat &image,int n);
int main()  
{  
	srand(cv::getTickCount()); 
    cv::Mat image=cv::imread("D:\\Test\\opencv\\boldt.jpg"); 
	if(!image.data)
		return 0;
	salt(image,3000);//調用椒鹽噪點函數
    cv::namedWindow("output Image");  
    cv::imshow("output Image",image); 
	cv::imwrite("salted.bmp",image);
    cv::waitKey(0);  
    return 0;  
}  
void salt(cv::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 if(image.channels()==3){
		image.at<cv::Vec3b>(j,i)[0]=255;
		image.at<cv::Vec3b>(j,i)[1]=255;
		image.at<cv::Vec3b>(j,i)[2]=255;
	    }
	  }
}


           
opencv2 椒鹽噪點salt