Я нахожусь в процессе написания приложения для iOS (использующего ARC), которое выполняет обнаружение краев Канни и преобразование Хафа на изображении и возвращает y-позицию горизонтальной линии из определенной его части.Чтобы добиться этого, я использую библиотеку OpenCV.
Обнаружение края Canny было достаточно простым, но метод cv::HoughLines
каждый раз терпел неудачу с неприятной ошибкой «Утверждение не удалось».Вот фрагмент кода того, что я пытаюсь сделать:
cv::cvtColor(myImage, inputImage, cv::COLOR_RGB2GRAY);
cv::Canny(inputImage, outputImage, 200, 600);
cv::Vec2f lines; // short for 'Vec<float, 2>'
cv::HoughLines(outputImage, lines, 1, CV_PI/180, 100);
Сначала я не был уверен в правильности Vec2f, поэтому я попытался также определить lines
как cv::Mat
... Но тогда cv::HoughLines
вообще не возвращает никаких данных - по крайней мере, при проверке с помощью cv::countNonZero(lines)
Будучи довольно новым для iOS и Objective-C (и пришедшим из менее основанного на Cфон кодирования) любые исправления и советы будут с благодарностью!