ter_nk 0 Жалоба Опубликовано January 28, 2016 Здравствуйте, можно ли как-то оптимальным алгоритомом пройтись по точкам внутри контура. Мне нужно сделать преобразования по минимально необходимому числу точек просто с точки зрения скорости. Пока я решил вычислить минимальные и максимальные значения х и у и пройтись по точкам этого квадрата, просто если представить полоску повернутую на 45 градусов, то получается основная часть перебора будет сделана зря. Спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано January 28, 2016 Не очень понятная постановка задачи, с картинками было бы лучше. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ter_nk 0 Жалоба Опубликовано January 28, 2016 Вот смотрите, моя фигура салатовый повернутый прямоугольник, мне нужно в нем точки обработать как-то, но я понимаю как мне только обработать то что в синем прямоугольнике. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано January 28, 2016 Есть функция pointPolygonTest вот пример применения: http://docs.opencv.org/2.4/doc/tutorials/imgproc/shapedescriptors/point_polygon_test/point_polygon_test.html 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ter_nk 0 Жалоба Опубликовано January 28, 2016 Спасибо! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ter_nk 0 Жалоба Опубликовано January 29, 2016 Вопрос по геометрии в продолжение. У меня повернутый прямоугольник, зелененький. Через RotetedRect я нашел угол, с помощью функций warpAffine относительно центра я повернул, а как мне получить координаты повернутого прямоугольника? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ter_nk 0 Жалоба Опубликовано February 1, 2016 По результату что-то не так получается, если отклоняю точку от центра на сколько-то градусов, подскажите ошибку R - радиус A в радианы (3.14 / 180) * ANG (угол) X = R * Cos(A) - R*Sin(A) + x_centr; Y = R * Sin(A) + R*Cos(A) + y_centr; Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано February 1, 2016 Поясню алгоритм: 1) Переносим центр поворота в начало координат. 2) Поворачиваем , 3) Переносим обратно откуда взяли. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ter_nk 0 Жалоба Опубликовано February 1, 2016 Ну вот спасибо! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах