Линии OpenCV/обнаружение линейкиIOS

Программируем под IOS
Ответить
Anonymous
 Линии OpenCV/обнаружение линейки

Сообщение Anonymous »

Я пытаюсь обнаружить линейку на изображении, и я собираюсь следовать следующему процессу: < /p>

1) подготовить изображение (Blur, canny, ect.) < /p>

2) обнаружение строк < /p>

3). Изображение:
Изображение


code:

Код: Выделить всё

vector lines_std;
Ptr ls = createLineSegmentDetector(LSD_REFINE_NONE);
ls->detect(grayMat, lines_std);
< /code>

Но здесь я столкнулся с некоторыми проблемами  (и смотрит, нет никакого способа настроить CreatelinesegmentDetector < /code>) < /em>:
Не все строки были обнаружены; строки обнаруживают не в центре, а по бокам и иногда в левой или правой стороне, но я должен получить центр линии Билда, потому что это будет использоваться в расчетах только в расчетах. < /p>

Итак, как правильный способ найти все строки (и каждая строка только один раз в центре жирной линии)? />
cv::HoughLines(grayMat, lines, 1, CV_PI/90, 100 , 100, 0 );

for( size_t i = 0; i < lines.size(); i++ )
{
float rho = lines[i][0], theta = lines[i][1];
cv::Point pt1, pt2;
double a = cos(theta), b = sin(theta);
double x0 = a*rho, y0 = b*rho;

pt1.x = cvRound(x0 + 1000*(-b));
pt1.y = cvRound(y0 + 1000*(a));
pt2.x = cvRound(x0 - 1000*(-b));
pt2.y = cvRound(y0 - 1000*(a));

cv::line( originalMat, pt1, pt2, cv::Scalar(0,255,0), 3, CV_AA);
}
Но результат также выглядит странно (и расчеты занимают много времени) :


Подробнее здесь: https://stackoverflow.com/questions/421 ... -detection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»