常用形式:
mat.ptr<type>(row)[col]
对于Mat的ptr函数,返回的是<>中的模板类型指针,指向的是()中的第row行的起点
通常<>中的类型和Mat的元素类型应该一致
然后再用该指针去访问对应col列位置的元素
以下转载自:https://blog.csdn.net/github_35160620/article/details/51708659
单通道
cv::Mat image = cv::Mat(400, 600, CV_8UC1); //定义了一个Mat变量image。
uchar * data00 = image.ptr<uchar>(0); //data00是指向image第一行第一个元素的指针。
uchar * data10 = image.ptr<uchar>(1); //data10是指向image第二行第一个元素的指针。
uchar * data01 = image.ptr<uchar>(0)[1];//data01是指向image第一行第二个元素的指针。
多通道
cv::Mat image = cv::Mat(400, 600, CV_8UC3); //宽400,长600,3通道彩色图片
cv::Vec3b * data000 = image.ptr<cv::Vec3b>(0);
cv::Vec3b * data100 = image.ptr<cv::Vec3b>(1);
cv::Vec3b * data001 = image.ptr<cv::Vec3b>(0)[1];
mat.ptr<type>(row)[col]
对于Mat的ptr函数,返回的是<>中的模板类型指针,指向的是()中的第row行的起点
通常<>中的类型和Mat的元素类型应该一致
然后再用该指针去访问对应col列位置的元素
以下转载自:https://blog.csdn.net/github_35160620/article/details/51708659
单通道
cv::Mat image = cv::Mat(400, 600, CV_8UC1); //定义了一个Mat变量image。
uchar * data00 = image.ptr<uchar>(0); //data00是指向image第一行第一个元素的指针。
uchar * data10 = image.ptr<uchar>(1); //data10是指向image第二行第一个元素的指针。
uchar * data01 = image.ptr<uchar>(0)[1];//data01是指向image第一行第二个元素的指针。
多通道
cv::Mat image = cv::Mat(400, 600, CV_8UC3); //宽400,长600,3通道彩色图片
cv::Vec3b * data000 = image.ptr<cv::Vec3b>(0);
cv::Vec3b * data100 = image.ptr<cv::Vec3b>(1);
cv::Vec3b * data001 = image.ptr<cv::Vec3b>(0)[1];
cv::Vec3b * data