首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在OpenCV中访问cvMat图像中的像素值

在OpenCV中访问cvMat图像中的像素值
EN

Stack Overflow用户
提问于 2013-12-16 20:58:07
回答 3查看 4.3K关注 0票数 0

我已经使用Canny边缘检测器成功地识别了给定图像的边缘。我正在努力寻找这条检测到的边缘线上的特定点。

我的方法是:

我使用了opencv中的cv::canny函数,输出以cv::Mat格式存储。我想遍历矩阵的所有值,并识别出存在边缘的所有像素,这样我就可以检测到检测到的边缘线上的特定点。

使用的函数:

代码语言:javascript
复制
cv::Canny(frame_gray,contours,50,150);

输出存储在CV_8UC3类型的contours

要访问像素值,请尝试

代码语言:javascript
复制
contours.at<int>(i,j) != 0

而且还

代码语言:javascript
复制
contours.at<uchar>(i,j) != 0

将非常感谢在上述方面的帮助。如果方法是正确的,并且我遗漏了什么,或者如果我应该尝试另一种方法,谢谢

编辑:

代码语言:javascript
复制
for(int i=0;i<img_width;i++)
 { 
  if((int)contours.at<uchar>(i,neckcenter.y) > 0 ) 
  { 
    Point multipoints(i,neckcenter.y); 
    circle( contours, multipoints, neckpoint, Scalar( 255, 0, 0 ),4, 8, 0 );
    cout << (int)contours.at<uchar>(i,neckcenter.y) << endl; 
  }
 }

我正在使用上面的代码,它形成了一个半径为1的小圆(由颈点定义),在那里它检测到一个点和边缘。neckcenter.y是从先前的计算中导出的常量值。我在这里做错了什么?

代码的输出-

EN

回答 3

Stack Overflow用户

发布于 2013-12-16 21:01:54

在应用Canny之前,您可能需要一个灰度通道:

代码语言:javascript
复制
Mat gray;
cvtColor(bgr,gray,CV_BGR2GRAY); // now gray is a 8bit, uchar Mat

Mat contours;
cv::Canny(gray,contours,50,150);

// now you're safe to use:
uchar value = contours.at<uchar>(i,j);
票数 2
EN

Stack Overflow用户

发布于 2013-12-16 22:18:24

语法:

代码语言:javascript
复制
contours.at<uchar>(i,j)

在数据类型(即灰度图像)方面是适合您的情况的。下面这行可能暗示了这个问题:

代码语言:javascript
复制
for(int i=0;i<img_width;i++)

当您使用at访问OpenCV像素时,您必须将像素位置指定为(row, col),因此您的索引是错误的。在所有访问像素的地方尝试以下操作:

代码语言:javascript
复制
contours.at<uchar>(j,i)

OpenCV documentation

票数 1
EN

Stack Overflow用户

发布于 2013-12-17 20:25:12

您有一个类型为unsigned char的3通道图像。要访问它,您应该使用cv::Vec3b类型。下面是如何做的:

代码语言:javascript
复制
int channel = 0;//or 1 or 2
contours.at<cv::Vec3b>(i,j)[channel]

要检查所有元素是否都为0:

代码语言:javascript
复制
contours.at<cv::Vec3b>(i,j)[0]==0 && contours.at<cv::Vec3b>(i,j)[1]==0 && contours.at<cv::Vec3b>(i,j)[2]==0

但是,您从哪里获得轮廓图像类型为CV_8UC3的信息?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20611529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档