У меня есть приложение OpenCV 4.2.0, использующее HoughLinesP для обнаружения линий в изображении, которое отлично работает с C ++ и Objective- C. Теперь мне нужно, чтобы та же функциональность работала для java на Android.
Я уже пару дней борюсь с этим и свел это к следующей проблеме. Я не могу скопировать значение из одного MatOfInt4 в другой MatOfInt4, используя для l oop с lines2.put(i,0, lines.get(i, 0));
Ниже приведен фрагмент кода и результаты журнала. Ошибок компилятора или ошибок времени выполнения нет, просто нет значений, сохраненных в строке назначения MatOfInt4. Либо я неправильно понял, как работает метод put, либо что-то еще не так.
Кто-нибудь знает, где это могло пойти не так? Любые эксперты с Java и OpenCV, способные дать какие-либо рекомендации или исправления к приведенному ниже коду, чтобы он работал?
Вы можете видеть, что строки содержат 180 записей, for l oop насчитывает 180 циклов, но строки2 пусто, когда он закончится. Я могу get()
правильно указать значения из строк, и я использую значения в других частях кода, но я не могу put()
ничего в строках 2.
MatOfInt4 lines = new MatOfInt4();
lines = houghLinesP(sub);
Log.i(TAG, "Total Sub Lines Returned: " + lines.size());
MatOfInt4 lines2 = new MatOfInt4();
for(int i = 0; i < lines.rows(); i++) {
lines2.put(i,0, lines.get(i, 0));
Log.i(TAG, "Count of loop: " + i);
}
Log.i(TAG, "Dump of lines2 Returned: " + lines2.dump());
Log.i(TAG, "Total Lines2 Returned: " + lines2.size());
Результаты тестового кода:
Общее количество возвращенных подстрок: 1x180
Дамп возвращенных строк2: []
Количество l oop: 180
Всего возвращенных строк2: 0x0
Мы будем благодарны за любую помощь или руководство.