Работаю над распознаванием фигур в OpenCV. Чтобы найти четырехугольник, смотрю на количество вершин:
while(contours)
{
result = cvApproxPoly(contours, sizeof(CvContour), storage,
CV_POLY_APPROX_DP, cvContourPerimeter(contours)*0.02, 0);
if(result->total==3 )
{
CvPoint *pt[4];
for(int i=0;i<4;i++){
pt[i] = (CvPoint*)cvGetSeqElem(result, i);
}
cvLine(src, *pt[0], *pt[1], cvScalar(0,0,250),4);
cvLine(src, *pt[1], *pt[2], cvScalar(0,0,250),4);
cvLine(src, *pt[2], *pt[3], cvScalar(0,0,250),4);
cvLine(src, *pt[3], *pt[0], cvScalar(0,0,250),4);
}
contours = contours->h_next;
}
Хорошо работает на рисунках, но на реальных фотографиях работает гораздо хуже (использую свертку, но тогда рисунки распознаются хуже). Какие еще способы можно использовать для распознавания четырехугольников? Как можно переделать преобразование Хафа для поиска прямоугольников?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброе время суток, Можно ли объединить следующие запросы в один запрос?:
ПриветствуюСоздаю свое первое клиент-серверное приложение, поэтому хочу проконсультироваться с более опытными разработчиками
Пытаюсь в приложении на андроид закодировать фото в base64, чтобы отправить его на серверОднако результаты нулевые