Как получить строку и столбец определенного элемента в OpenCV? - PullRequest
0 голосов
/ 23 февраля 2012

Я пытаюсь получить строку и столбец определенного элемента из CvMat, который является 3-канальной матрицей.

Есть ли в OpenCV какая-либо функция, с помощью которой я могу получить это?Может быть, что-то вроде функции Matlab 'find'?

Ответы [ 3 ]

1 голос
/ 22 ноября 2012

Если этот «конкретный элемент» является цветным пикселем и он уникален, вы можете замаскировать его, используя

inRange(src,your_color,your_color,mask)

, а затем используйте minMaxLoc(), чтобы получить индекс этого уникальноготочка, которую вы ищете.

Конечно, это того стоит, только если вы не после одного пикселя (получите один пиксель, а не просто петлю), но если вы неслишком много этого может быть проще сделать излишним, поскольку оно короткое, в конце концов.

Если вы ищете подматрицу, используйте matchTemplate, затем minMaxLoc, чтобы получить индекс.

0 голосов
/ 23 февраля 2012

Я никогда не слышал о такой функции в Opencv.Тем не менее, вы можете сканировать свою матрицу в поисках значения, которое вам нужно найти.Я думаю, что также функция "найти" работает аналогичным образом.

0 голосов
/ 23 февраля 2012

если вы используете cpp, все в порядке, чтобы написать так:

Mat readmat = imread ("pic", 0);
cols = readmat.cols;
row = readmat.rows;

Кстати, вы можете сослаться здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...