如何在OpenCV中获取特定元素的行和列?

时间:2012-02-23 06:22:55

标签: c++ c image-processing opencv

我试图从CvMat获取特定元素的行和列,这是一个3通道矩阵。

OpenCV中是否有任何功能可以用来获取它?像Matlab的'find'功能,可能吗?

3 个答案:

答案 0 :(得分:1)

如果“特定元素”是彩色像素并且它是唯一的,则可以使用

对其进行掩码

inRange(src,your_color,your_color,mask)

然后使用minMaxLoc()获取您要查找的唯一点的索引。

当然,如果你在一个像素之后(获得单个像素而不是一个简单的循环),这是值得的,但是如果你不做太多这样的事情就可以了更容易做到这种矫枉过正,因为它很短,毕竟。

如果您正在寻找子矩阵,请使用matchTemplate然后minMaxLoc获取索引。

答案 1 :(得分:0)

如果您使用cpp,可以这样写:

  

Mat readmat = imread(“pic”,0);
  cols = readmat.cols;
  rows = readmat.rows;

顺便说一句,您可以参考here

答案 2 :(得分:0)

我从未在Opencv中听说过这样的功能。您仍然可以扫描矩阵,寻找您需要找到的值。我认为“find”功能也以类似的方式工作。