Перейти к содержимому
Compvision.ru

VironZizu

Пользователи
  • Количество публикаций

    63
  • Зарегистрирован

  • Посещение

  • Days Won

    1

VironZizu last won the day on September 3 2014

VironZizu had the most liked content!

Репутация

2 Новичек

О VironZizu

  • Звание
    Эксперт
  1. Смотрел, ничего полезного для себя не нашел. Примеры для нахождения прямоугольников не отрабатывают для моего случая, так как после бинаризации, когда начинаю искать контуры как там предлагается, он далеко не всегда нужный квадрат находит, так как сканы иногда засвечивают изображения, особенно если документ положить ближе к краю. По моему мнению правильней было бы реализовать через Хью лайнс, он отрабатывает неплохо, но куча лишних линий естественно получается, из них всех нужно как то по пробовать построить прямоугольные области, вот ломаю голову, как!? Если бы находил конкретно 4 линии, было бы все намного проще.
  2. Smorodov Приветствую!) Появилось снова время немного заняться проектом, решил усовершенствовать механизм обнаружения паспорта, все таки сделать через Хью лайнс. Подскажите пожалуйста, вот у меня получился скоп линий, как мне из них построить прямоугольник? Нужна математическая магия судя по всему))
  3. По пробовал сам разобраться, но не получилось. Случаем нету примера как узнать этот усредненный цвет внутри контура? Я так понимаю у одинаковых букв эти цвета должны будут примерно совпадать!? Это было бы здорово!
  4. Спасибо большое за наводку! а то год бы разбирался!)) Продолжаю шлифовать свой алгоритм удаления шумов, уже неплохо, но удаляются периодически и нужные запчасти. Появилась одна идейка, вот хочу узнать, возможно ли реализовать! Вот у меня есть контур, мы смотрим цвет внутри этого контура, если он похож на цвет внутри другого контура, то оставляем, если не похож, то удаляем. Больше всего кончено смущает момент "если похож")) может у вас есть какие-нибудь мысли по этому поводу))
  5. По игрался с инверсиями и все получилось, спасибо!) Получилось убрать мелкие шум с изображения, я доволен)осталось научиться как то аккуратней его удалять, а то бывает что с мелким шумом и части букв удаляешь)) Непонимаю, при выполнении собственно копирования с маской появляется такой дибильный эффект с верху! Из за чего это может быть? Причем на разных изображениях одна хрень)) эти полоски) Cv.Copy(src, dstMask, Mask);
  6. ну немного не то, если я контуры залью черным в них полезные грани замажутся. Мне именно нужно чтобы я замазал все изображение, но содержимое контуров осталось не тронутым!
  7. Интересно) П о работал с гистограммами, ничего полезного из них вытащить не смог) всял значение константу, вроде для всех вариантов отрабатывает неплохо!) Есть ещё одна идея, но не знаю как реализовать в коде, у меня есть контуры, как закрасить всю область кроме внутринностей этих конутров?) инверсию контуров как то сделать или как?)
  8. По пробовал Adaptive Threshold результаты лучше! Но там я параметры задаю в ручную допустим srcGray.AdaptiveThreshold(dst, 255, AdaptiveThresholdType.MeanC, ThresholdType.Binary, 20); block size = 20. Для некоторых вариантов этот параметров хорошо отрабатывает, но для некоторых нужен немного другой, как можно для адаптивной бинаризации выщитывать этот блок сайз? к чему можно привязатся? Потому что я смотрю, он лучше справляется чем обычный Threshold. Некоторые еле видные грани не сжираются, а некоторые слишком жирные не становятся жирнее... з.ы. Работаю с областью "кем, где выдан"
  9. Еще небольшой вопрос, вот у меня есть бинаризация Отсу grayClone.Threshold(grayClone, 0, 255, ThresholdType.Otsu); Я так понимаю этот метод заключается в том, что высчитывается средний порог и применяется. А если мне нужно высчитать средний порог и потом его применить к обычной бинаризации, как это можно сделать? Вот сюда: grayClone.Threshold(grayClone, 0, 255, ThresholdType.Binary); На сколько я понимаю этот порог задается в обычной Binary там где у меня 0!? З.ы. Для чего это мне нужно, чтобы можно было средний порог в небольших пределах по варировать! И сделать скоп разных бинаризаций отталкивающихся от среднего!
  10. Smorodov, Обалденно!!! На выходных засяду этот код под мой C# врапер подгонять!) Просто огонь!)
  11. mrgloom Идея про уменьшение кстати очень даже хороша, взял на вооружение, заметно шустрей отрабатывает! Я понимаю, что у меня бинаризация в печали, немного не понял что за пример вы скинули, я так понимаю это не OpenCV? Смотрю ваши примеры, очень хороши бинаризация получилась! такие контуры я думаю бы в легкую нашлись, жалко я пока повторить не могу)) image->type->8 bit color->8bit image->adjust Auto threshold\Auto local threshold. Вот это, что имеется ввиду? не совсем уловил) Есть ещё такой ньюанс, если положить паспорт прямо у кромки, то получается, что кромка как бы обрезается, и этот метод совсем уже не срабатывает, пробовал как вариант у скана дорисовывать рамку в 2 пикселя, но это тоже не помогло,у него тогда не получается все нужные прямоугольники найти!
  12. Nuzhny, по тестил LCD метод интересный, пример с купюрой нашел целый скоп прямых, как только их потом объединить в квадраты и выбрать еще нужный?) Мне кажется сложноватый способ для моей задачи) Пробую дальше через квадраты, выяснил почему не может найти полный контур паспорта, когда он лежит рядом с кромкой, получается при Tresholding граница сканируемого изображения немного засвечивается и поэтому алгоритм уже не может нужный внешний контур найти, сейчас покажу пример, может по советуете чего: Как я ищу: 1) делаю небольшое размытие 2)затем Threshold 3)затем FindContours ищу конутры 4)далее Cv.ApproxPoly и у меня повялется куча наборов точек(контуры) 5)Далее сортируем нужные мне с нужными углами и размерами. 6) Повторяем процесс с другими параметрами в Threshold И та кручу этот цикл и области отлично находятся, вот единственная проблема с краями и засветами, пробовал Канни, а он долго отрабатывает, циклов 10 если поставить так вообще жуть)
  13. Nuzhny пробовал загуглить lsd) как и ожидалось вылезла целая туча статей про наркоту))) можно по подробней по нему? тяжело реализовывается? средставами OpenCV? Smorodov Я прочитал и общей картины не получил)) Видимо это действительно пушка, которую я с трудом осилю)) Сейчас попробую контуры по моментам по сравнивать, хотя затея глупая конечно, потому что для каждого паспорта он всегда рандомно эту прямоугольную область находит(с половинкой паспорта), то верхнюю половинку, то нижнюю. Думал искать область, потом переворачивать изображение на 180 и заново пробовать искать, но логику пока додумать не могу, что с этими двумя областями делать... Опять же, при тестах он мог так одну и ту же половинку паспорта находить при переворотах, а мог разные... Оказалось я немного подтупил, мой метод находит все таки нужную мне страничку, оказалось я неправильно отсортировываю! Но остается маленький ньюанс, как отличить верхнуюю страничку от нижней?)) размеры и площади то у них одинаковые!)))
  14. Взял для тестов несколько паспортов, результат жутко расстроил, положил паспорт с обложкой, мой алгоритм с ним не отработал, кароче из 5 штук, 2 нормально отработали... В связи с этим вопрос обнаружения границ паспорта снова актуален) ибо я уже без сил, как его границы еще находить вообще не понимаю, там столько ньюансов получается, что очуметь
  15. Да, наверное я не так спрашиваю, медианную фильтрация делаю и так, в частности размытие Гаусса. Получается я нахожу позиции паспорта, и потом нарезаю примерно ту область где находится нужный мне текст, естественно для разных паспортов эта область не получается пиксель в пиксель, и получается что в кадр попадают не нужные предметы, а тессеракт при распозновании очень болезненно на них реагирует. Лучше для примера я выложу сами картинки, допустим с полями Фамилия, Имя, Отчество: Так вот, в область попала верхняя кромка, она на паспорте идет чуть ниже сердцевины, по свойствам она похожа на буквы, как удалять её, вообще не понятно мне)
×