我试图从CvMat获取特定元素的行和列,这是一个3通道矩阵。
OpenCV中是否有任何功能可以用来获取它?像Matlab的'find'功能,可能吗?
答案 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”功能也以类似的方式工作。