Ответы пользователя по тегу OpenCV
  • Как сшить панораму неба?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Интересная задачка. Никогда ее не решал, поэтому пользу от моего ответа вам, наверно, не будет, но...
    Вы вот чем сформировали изображение проекции кадров на первой картинке в вопросе?
    Если вы смогли спроецировать кадр, то также можно спроецировать и каждый пиксель. Формулы те же, вопрос интерполяции. Нужно просто спроецировать ваши фото на одну картинку, а при одинаково настроенной фиксированной экспозиции по цвету границ видно быть не должно.
    Также можно откалибровать и поправочные искажения локальных участков для каждой камеры. Это будут векторные поля, сформированные размытием опорных поправочных векторов при калибровке.
    То есть берете кадры звёздного неба, отмечаете одинаковые точки на ваших проекциях, двигаете проекции, чтобы точки совпали и надеетесь, что ваша монтировка не погнётся=).
    Сама склейка будет происходить попиксельно. Каждый кадр попиксельно проецируется в отдельный слой с вдвое бОльшим разрешением, так каждый проецируемый пиксель будет немного четырёхугольником с вещественными координатами, а затем спроецированные полигоны растеризуете и усредняете перекрытия.
    Задачка выглядит не особо сложной. Основная задача в подборе формул проецирования.
    Ответ написан
    Комментировать
  • OpenCV. Почему отдельные кадры из видео весят больше чем видео?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Потому что кадры в массивах хранятся в несжатом виде, а исходный видео-ролик сжат кодеком.
    Кодеки сейчас довольно сложные, у них много параметров сжатия и нетривиальные алгоритмы. Вы один и тот же ролик можете расжать и сжать по новой, а в результате получите совсем другой объём и даже немного отличающийся контент, ведь сжатие происходит обычно с потерей качества.
    Ответ написан
    Комментировать
  • Можно ли как-то огранчить opencv по поиску объектов на изображении?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Да просто обрежьте картинку перед тем как отдать opencv и все.

    Дополню.
    Конечно обрезать надо не вручную, а той же самой opencv.
    Ок, таблица может быть где угодно, но внешняя рамка-то всегда на своем месте?
    Вообще не очень ясно что там у вас за PDF-ки. Если такие как в примере ровненькие и с одинаковыми полями, да рамочкой по ГОСТу, то просто кропайте картинку по этой рамке и все.
    Если поля плавают по размерам, то придётся искать границы и кропать по ним.
    Самое неудобное - это когда у вас сканы или фото документов, и они чуть под разными углами и искажены. Но в целом задача хоть и усложняется, но остается прежней.
    Можно найти вертикальные линии и взять самую длинную из самых левых - это левая граница рамки. С остальными так же.
    Обрезайте рамку полностью с небольшим запасом, потом ищите координаты таблицы, пересчитываете их в координаты на необрезанной картинке, добавляете с нужной стороны (в зависимости от того, с какой стороны у вас нашлась таблица) и снова вырезаете из оригинального изображения.

    И да, ненужные таблицы, особенно те, которые всегда на своем месте, можно перед поиском таблиц замазать белым прямоугольником с небольшим запасом. Но вырезать искомую таблицу надо по координатам с оригинала, чтобы края были корректными.
    Ответ написан
    7 комментариев
  • Как распазнать черные точки на картинке?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А как вы пытались решить эту задачу? Поисковик выдаёт решение в первой строчке. Вы искали?
    https://www.google.com/search?q=opencv+%D0%BF%D0%B...
    Это не сайт для фриланса, тут отвечают на вопросы и помогают с кодом, если что-то не получается. Если вы и не пытались решать задачу, то вам не сюда.
    Написали бы хотя бы рассуждения.
    Складывается впечатление, что вы не пытаетесь сами научиться решать такие задачи, а хотите чтобы кто-то сделал для вас готовый код.
    Ответ написан
  • Pycharm не подсказывает код по opencv-python, как исправить?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Говорят вот хардлинком библиотеки лечат https://stackoverflow.com/questions/5049842/autoco...
    Ответ написан
    Комментировать
  • OpenCV Python. Как работают координаты прямоугольника?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    В любой документации, гуглится с первой попытки.
    Это координаты противоположных углов прямоугольника.
    Ответ написан
  • Как правильно преобразовать серое изображение в массив?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Вы закодировали бинарное несжатое изображение (где каждый байт или группа байтов в зависимости от того сколько каналов - это отдельный пиксель) jpeg-кодеком в сжатый формат с потерей качества. У этого формата есть шапка и там пиксели нее представлены в виде массива байт, там всё более сложно.
    Но сам формат -- это байтовая строка, которую вы теперь зачем-то превращаете в массив...
    Конвертируйте JHPEG обратно в битмап и будет вам такой же массив как исходный. Возмодно почти такой же, поскольку у вас есть потеря качества и некоторые пиксели могут оказаться немного перекрашенными.
    Ответ написан
    Комментировать
  • Как с помощью OpenCV очистить подобные изображения?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Капча слабая:
    - шрифты не варьируются,
    - размер фиксированный,
    - линии однопиксельные,
    - шум однотипный.

    Не парьтесь с лишним от линиями. Переводите изображение в lab; работайте в монохромном канале яркости. Подберите похожий шрифт и размер, обучите 10 нейронок на свою цифру каждая. Сканируйте окном с пиксельных шагом. Этого будет достаточно

    Но! Линии однопиксельные толщиной, контрастные и обычно отличаются по цвету от фоновой цифры.
    Прям хочется убрать, правда?
    Можно это сделать алгоритмически.
    Перебираем все пиксели и анализируем соседние. При нахождении контрастного пикселя запускаем алгоритм "короеда" с дополнительным условием. Если углы между первым пикселем и последующими предокрашенными начинают отличаться более чем на пороговый епсилон, который ещё и от расстояния может уменьшаться, то процесс короеда останавливаем, линия не подтверждена. По факту естественного завершения короеда берём для каждой точки средний цвет из двух в перпендикулярном линии направлении.
    Ответ написан
    Комментировать