Jump to content
Compvision.ru

Smorodov

Главные администраторы
  • Content count

    3,812
  • Joined

  • Last visited

  • Days Won

    342

Everything posted by Smorodov

  1. Ну если знаем 2 точки то alpha=atan2(dy,dx)
  2. Коррекция кадров видео

    Поздно но наткнулся на пакет для решения подобных задач: https://github.com/cruxopen/openISP
  3. Извиняюсь что запоздал с ответом, был в отъезде. Сишный пример из стандартного набора: #include <opencv2/imgproc.hpp> #include <opencv2/highgui.hpp> using namespace cv; using namespace std; int main(int argc, char** argv) { Mat src, dst, color_dst; if( argc != 2 || !(src=imread(argv[1], 0)).data) return -1; Canny( src, dst, 50, 200, 3 ); cvtColor( dst, color_dst, COLOR_GRAY2BGR ); vector<Vec4i> lines; HoughLinesP( dst, lines, 1, CV_PI/180, 80, 30, 10 ); for( size_t i = 0; i < lines.size(); i++ ) { line( color_dst, Point(lines[i][0], lines[i][1]), Point( lines[i][2], lines[i][3]), Scalar(0,0,255), 3, 8 ); } namedWindow( "Source", 1 ); imshow( "Source", src ); namedWindow( "Detected Lines", 1 ); imshow( "Detected Lines", color_dst ); waitKey(0); return 0; } По поводу морфологических операций, cv::dilate затем cv::erode. Для детектора линий, нужно белое изображение на черном фоне.
  4. dilate - утолщит все с сольет в блоки. Структурный элемент взять высотой с символ, шириной примерно в 1.5 - 2.5 от ширины символа. после него erode с тем же ядром, чтобы вернуть размеры блоков. Повторить поиск контуров.
  5. На английском конечно, но по теме ) : https://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/ GetStructuringElement создает структурный элемент для морфологических операций (эрозия, дилатация, открытие, закрытие .... ) элемент представляет собой маленький шаблончик в виде прямоугольника заполненного единицами, реже используется эллипс, крест, и т.д. Посмотрите про морфологические операции и все станет ясно. https://ru.wikipedia.org/wiki/Математическая_морфология
  6. На CPP это cv::resize , на шарпе не знаю. Ну если все получилось, поздравляю! ))
  7. Может там фильтр по минимальной площади текста стоит, попробуйте увеличить размер изображения, или посмотрите параметры тессеракта, помнится таи их огромная куча была. Вот, кстати: https://www.sk-spell.sk.cx/tesseract-ocr-parameters-in-302-version
  8. Ну сетка это слишком жестко ) Под видео ссылка на гитхаб.
  9. В OpenCv ecть встроенные детекторы текста, гляньте здесь: https://www.pyimagesearch.com/2018/08/20/opencv-text-detection-east-text-detector/
  10. Прислушайтесь к тому, что советует Nuzhny, начните с tesseract-ocr, есть даже бинды под шарп https://github.com/charlesw/tesseract например. Пример применения : https://github.com/charlesw/tesseract-samples Но если есть много энергии и желание повозиться, пишите, посоветуем по шагам, но это длинный путь )
  11. Коррекция кадров видео

    Можно попробовать белый ящик для фотографирования разных вещей, может оттуда белый более менее получится взять. Погуглите "light box for photography".
  12. Коррекция кадров видео

    переводить в hsv и выделять цвет, можно было бы, если бы изображение листа было без цвета, но так не бывает в реальном мире лист не белый и не серый, он тоже цветной.
  13. Коррекция кадров видео

    Нет, снимаем любые изображения. Сейчас подумал, что способ будет работать при аддитивной модели искажения i=i_0+i_noise. А здесь, похоже мультипликативная: i=i_0*i_v Так как черное изображение остается черным. PCA пожалуй не разделит в этом случае. Видимо надо сильно размыть изображение белого листа, нормализовать цвет в каждой точке (r=r/norm(rgb), g=g/norm(rgb),b=b/norm(rgb)). Ну и разделить попиксельно исходное изображение на полученные коэффициенты.
  14. Коррекция кадров видео

    Готовых решений не знаю, но можно попробовать слепое разделение источников (blind source separation). Снимаете 2 кадра A и B. делаете из них 3 смеси в разных пропорциях. I1=k1*A+(1-k1)*B I2=k2*A+(1-k2)*B I3=k3*A+(1-k3)*B На самом деле это будут смеси из 3 изображений A, B, и виньетки. Раскладываем на 3 источника, затем вычисляем коэффициенты искажения цвета. Что то типа этого:
  15. Можно, для начала, попробовать что то подобрать здесь: https://github.com/topics/license-plate-recognition
  16. Так это, однослойное требует Проверьте shape загруженного изображения, если слоев 3, просто отцепите один, в сером они все одинаковые.
  17. Расчёт дистанции до объекта

    Да, disparity как то не сошлось. Видимо картинка не подходящая, квадратики гладкие и регулярные текстуры. Не то что любят алгоритмы стерео матчинга. Посмотрите примеры здесь: https://answers.opencv.org/question/117141/triangulate-3d-points-from-a-stereo-camera-and-chessboard/ может наведет на мысли. А почему калибруете через матлаб ? OpenCv - шная тулза не подходит ? Можно попробовать откалибровать opencv-шным и сравнить коэффициенты.
  18. Расчёт дистанции до объекта

    А можете привести схему эксперимента? Как установлены камеры, расположение и размеры объекта. А то вы привели результат работы алгоритма, а что должно быть мы не знаем. Может быть еще минимальный запускаемый кусок кода с тестовым изображением для пощупать проблему.
  19. Сдается мне , почти ваша задача здесь: https://github.com/jahaniam/Real-time-Video-Mosaic
  20. У меня под виндой обычно установлен k lite codec pack и его, как правило, хватает на все случаи жизни.
  21. Думается H.264 или H.265 должны жать по максимуму, но вряд ли сильно плотнее чем mpeg4 или divX..
  22. Репа бинарников: https://www.tensorflow.org/install/lang_c
  23. Наткнулся на проект по теме, детектор Vanishing Point (python ): https://github.com/rayryeng/XiaohuLuVPDetection
  24. это можно, но тогда на изображениях должна быть одна и та же картинка, отличающаяся только поворотом, ну может немного смещенная. Короче, если взяв эти деве картинки вы на глаз можете определить поворот, то и комп сможет, если нет, то нет.
×