Проведите приспособленную линию (OpenCV)

Я использую OpenCV для установки строке от ряда использования точек cvFitLine()

cvFitLine() возвращает нормализованный вектор, который является колинейным к строке и точке на строке. Посмотрите детали здесь

Используя эту информацию, как я могу получить уравнение строки так, чтобы я мог разграничить?

10
задан Sunny 1 May 2010 в 17:23
поделиться

2 ответа

Если cvFitLine() возвращает нормализованный вектор (vx,vy) и точку (x0, y0), тогда уравнение прямой будет

(x,y) = (x0,y0) + t*(vx,vy)

где t проходит от -∞ до +∞.

Это то, о чем вы просили, но, вероятно, не сразу поможет провести линию. Вы хотите прикрепить ее либо к границам экрана, либо к границам исходного набора точек. Чтобы прикрепить линию к прямоугольнику, просто решите задачу для значений t, где линия пересекает границу прямоугольника.

9
ответ дан 3 December 2019 в 17:19
поделиться

Просто нарисуйте большую линию вместо того, чтобы определять границы. например:

cv.Line(img, (x0-m*vx[0], y0-m*vy[0]), (x0+m*vx[0], y0+m*vy[0]), (0,0,0))

сделает это, например .. для достаточно большого m:)

9
ответ дан 3 December 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: