Я в настоящее время пытаюсь обнаружить горизонтальные подобные линии в изображении с помощью функции HoughLinesP в OpenCV, используя следующие параметры:Как использовать HoughLinesP для определения горизонтальных линий в OpenCV?
HoughLinesP(linMat[i], lines, 1, CV_PI/180, 80, linMat[i].cols*(0.3), 3);
где linMat[i]
является входным изображением. В результате, как этот
http://postimg.org/image/49b8wzlgz/
В то время как это хорошо, что я хочу, чтобы иметь линии в горизонтальном направлении, как показано желтой линией на этом изображении (линия нарисованных вручную)
http://postimg.org/image/rh9wlueo7/
Я пытался изменить параметр CV_PI/180
с меньшим значением (например, как CV_PI/45
), а также попытаться использовать различные значения для других параметров, но горизонтальная линия не может быть сгенерирована.
Какие значения должны использоваться в параметрах для создания такой желтой линии с использованием функции HoughLinesP в opencv?
Спасибо!
Update
После предложений (спасибо всем!) Я пытался даже очень экстремальные значения, как
HoughLinesP(linMat[i], lines, 1, CV_PI/360, 80, 1, 1);
, тем не менее, приведенные линии имеют наклон в ближайшем вертикальном направлении, так как это : postimg.org/image/y5w6vm7lx/ (скопируйте-вставьте ссылку ...). Я не использую фильтр обнаружения края, например, canny, так как он не смог обнаружить более толстые линии, края, как правило, были прекращены.
Обновление 2
Просто для уточнения, линии, сделанные в результате образуются следующим образом (после HoughLinesP)
for all lines
{
line(linMat[i], Point(lines[j][0], lines[j][1]), Point(lines[j][2], lines[j][3]), Scalar(0,0,255), 1, 8);
}
Если вы установили theta в PI, вы получите почти как раз вертикальные линии. PI/3, похоже, работает одинаково. Но PI/6 возвращает все направления. Я не разобрался в деталях, почему он работает таким образом, но изменение тэта на тестовом изображении может дать вам указания. –