opencv获取图像像素方法主要是3种,分别是指针风格、迭代器风格、动态地址风格,代码如下:
Mat image = imread(strPic);
//指针
int iColumn = (image.cols)*(image.channels());
int iRow = image.rows;
for (size_t i = 0; i < iRow; i++)
{
uchar* data = image.ptr<uchar>(i);
for (size_t j = 0; j< iColumn; j++)
{
int iPIX = data[j];
}
}
//迭代器
Mat_<Vec3b>::iterator itbegin = image.begin<Vec3b>();
Mat_<Vec3b>::iterator itend = image.end<Vec3b>();
for (; itbegin != itend; itbegin++)
{
int iColorb = (*itbegin)[0];
int iColorr = (*itbegin)[1];
int iColorg = (*itbegin)[2];
}
//动态地址
int iRowCount = image.rows;
int iColumnCount = image.cols;
for (size_t i = 0; i < iRowCount; i++)
{
for (size_t j = 0; j < iColumnCount; j++)
{
int iColorb = image.at<Vec3b>(i, j)[0];
int iColorr = image.at<Vec3b>(i, j)[1];
int iColorg = image.at<Vec3b>(i, j)[2];
}
}