#include <opencv2\opencv.hpp>
#include <iostream>
#include <math.h>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
Mat src;
src = imread("test1.jpg");
if (src.empty())
{
cout << "could not load image" << endl;
return -1;
}
namedWindow("input", CV_WINDOW_AUTOSIZE);
imshow("input", src);
Mat dst;
namedWindow("output", CV_WINDOW_AUTOSIZE);
cvtColor(src, dst, CV_RGB2GRAY);
printf("input image channels :%d\n", src.channels());
printf("output image channels %d\n", dst.channels());
int cols = dst.cols;
int rows = dst.rows;
printf("rows :%d cols :%d\n", rows, cols);
const uchar* firstRow = dst.ptr<uchar>(0);
printf("first pixel value :%d\n", *firstRow);
Mat m1;
m1.create(src.size(), src.type());
m1 = Scalar(0, 0, 255);
Mat csrc;
Mat kernel = (Mat_<char>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
filter2D(src, csrc, -1, kernel);
Mat m2 = Mat::eye(2, 2, CV_8UC1);
cout << "m2 = " << endl << m2 << endl;
namedWindow("output_csrc", CV_WINDOW_AUTOSIZE);
imshow("output_csrc", csrc);
Mat dst1;
dst1 = Mat(src.size(), src.type());
dst1 = Scalar(127, 0, 255);
namedWindow("output", CV_WINDOW_AUTOSIZE);
imshow("output", dst1);
waitKey(0);
return 0;
}
void salt(Mat image, int n)
{
std:: default_random_engine generator;
std::uniform_int_distribution<int>
randomRow(0,image.rows-1);
std::uniform_int_distribution<int>
randomCol(0,image.cols -1);
int i,j;
i = randomCol(generator)
j = randomRow(generator);
if(image.type()==CV_8UC1)
{
image.at<uchar>(j,i)=255;//
}
elseif (image.type()==CV_8UC3)
{
image.at<Vec3b>(j,i)[0]=255;
image.at<Vec3b>(j,i)[1]=255; //Vec3b
image.at<Vec3b>(j,i)[2]=255;
}
}
C++ opencv二维遍历,椒盐噪声
最新推荐文章于 2022-05-03 15:46:59 发布