对图像像素值的获取,除了可以用指针访问得到以外,还可以通过以下方式获得,设读入一张图像为src:
单通道图像:src.at<uchar>(row,col);
三通道图像,bgr三分量分别为:src.at<Vec3b>(row,col)[0];
src.at<Vec3b>(row,col)[1];
src.at<Vec3b>(row,col)[2];
#include<opencv2/opencv.hpp>
#include<iostream>
#include<math.h>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat src = imread("1.jpg");
if (src.empty())
{
cout << "could not load image" << endl;
return -1;
}
namedWindow("input", CV_WINDOW_AUTOSIZE);
imshow("input", src);
Mat gray;
cvtColor(src, gray, CV_BGR2GRAY);
int rows = gray.rows;
int cols = gray.cols;
Mat dst = Mat(src.size(), src.type());
int nc = src.channels();
for (in