opencv学习笔记存取像素值

             我不想永远是小明,我也想成为小红。

椒盐噪点:随机的将部分像素设置为白色或黑色。如果部分像素丢失,那么这种噪点就会出现。

cout是输出,属于iostream,格式:cout<<

CV_[位数][带符号与否][类型前缀]C[通道数],如CV_8UC3表示使用8位的unsigned char型,每个像素由三个元素组成三通道。

rand()随机数生成函数

void“无类型”

rand()%X:%为取余数,该句作用:生成小于X的随机数

at(int y,int x)可以用来存取图像元素,但是必须声明图像的数据类型。【一定要y在前,x在后】

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
void salt(Mat &image, int n)//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)//为RGB图
  {
   image.at<Vec3b>(j,i)[0] = 255;
   image.at<Vec3b>(j,i)[1] = 255;
   image.at<Vec3b>(j,i)[2] = 255;
  }
 }
}
int main()
{
 Mat srcImage = imread("1.jpg");
 salt(srcImage, 3000);
 namedWindow("处理图");
 imshow("处理图", srcImage);
 
 waitKey(0);
 return 0;
}       

椒盐噪声

猜你喜欢

转载自blog.csdn.net/qq_42017043/article/details/83301679