【问题标题】:How do I access a pixel in OpenCV?如何访问 OpenCV 中的像素?
【发布时间】:2011-11-24 00:32:44
【问题描述】:

我有一个 x,y 点坐标,如何使用它来访问 IplImage 上的特定点?

谢谢

【问题讨论】:

    标签: image video opencv pixel


    【解决方案1】:

    或者,您可以这样做。有关更多矩阵运算,请参见此处。

    http://note.sonots.com/OpenCV/MatrixOperations.html

         int col, row, z;
         uchar b, g, r;
         for( y = 0; row < img->height; y++ )
         {
           for ( col = 0; col < img->width; col++ )
           {
             //for( z = 0; z < img->nChannels; z++ )
             //{
             //   c = img->imageData[img->widthStep * row + col * img->nChannels + z];
             //}
             b = img->imageData[img->widthStep * row + col * 3]
             g = img->imageData[img->widthStep * row + col * 3 + 1];
             r = img->imageData[img->widthStep * row + col * 3 + 2];
           }
         }
    

    【讨论】:

      【解决方案2】:

      使用CV_IMAGE_ELEM

      CV_IMAGE_ELEM( image_header, elemtype, y, x*N+C )
      

      例如给定一个 8 位 3 通道(例如 RGB)IplImage* img,我们希望 (x,y) 在第二通道:

      CV_IMAGE_ELEM(img, uchar, y, (x * 3) + 1))
      

      【讨论】:

      • 谢谢 这将返回该像素的值,对吗?还是返回指向该像素的指针?因为我需要价值
      • @FarhadYusufali:是的,它返回值。有关更多信息,请查看我添加的链接
      • @Jacob 我正在尝试在 Java 中将它用于 HSV,但它不起作用。你能看看我的帖子有类似的问题吗?我对图像处理很陌生。 stackoverflow.com/questions/42399777/…
      猜你喜欢
      • 2011-06-12
      • 2020-01-13
      • 2015-05-12
      • 2018-02-09
      • 2011-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多