За последние 24 часа нас посетили 17123 программиста и 1628 роботов. Сейчас ищут 1786 программистов ...

Анализ и нахождение областей в изображении

Тема в разделе "Вопросы от блондинок", создана пользователем Gromo, 13 фев 2011.

  1. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    фишка в том, что большинство фильтров для изображения работают именно с частями изображения от 3х3 до 64х64, и т.д... пикселя, важен сам факт, что фильтр охватывает лишь часть изображения. человеческий мозг же воспринимает изображение целиком.

    моя мысля - вначале уменишить изображение до 100х100 пикселей и делать анализ всего изображения. это позволит выделить объекты из общего вида. после этого можно делать анализ каждого объекта нормального размера.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    мне кажется одним проходом не оберешься.
     
  3. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    факт
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    едем далее: нужно создать карту по такому алгоритму. Берем точку, берем соседнюю, если один цвет (в рамках диапазона) то рисуем черную точку, если цвета отличаются - чем сильнее тем светлее точку рисуем. Получаем забавную штуку. Что на ней? я б глянул. может быть удобнее будет искать.
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  7. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    igordata
    в первом сообщении написал, что opencv подключить не смог :)
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Gromo
    дык смоги =)
     
  9. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Человеческий мозг воспринимает тысячи нечетких накладывающихся друг на друга обрывков и формирует из них изображение.
    Приходилось в сумерках угадывать предмет по очертаниям: после угадывания он вдруг видится четко.
    Вот примерно то же самое можно сделать, проверяя совпадения контуров по паттернам.
     
  10. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    регулярные выражения для изображений :)
     
  11. goshalve

    goshalve Guest

    Если брать изображения где создаётся шум как дофигищи серых точек кроме самого числа+числа могут быть наклонены под некоторым углом.Я думал про такой алгоритм.
    Числа могут быть от 0 до 9,остальные проверять не имеет смысла.
    1)Если это 0,то можно провести линию ил 1 точки в другую,причем внутри пусто,а с другогго края -часть фигуры.Спасает даже если фигура перевернута.Несколько хорд то есть,через центр нуля.И все должны оказаться в другой части фигуры.С нулём разобрался.
    2)6 и 9.По сути 6-это 0,только при прохождении одной из хорд -вверху тоже будет часть фигуры.8-это 2 склеенных нуля,вне зависимости от позиции.
    3) 3-это если склеить со своей копией перевернутой-получится восьмерка.Или тоже как нибудб по хордам.Потому что 0 9 8 6 определяются однозначно как фигуры замкнутые..
    4)1-единица-такая фигура,хорда от которой(от 1 части в другую) не пересекает ничего как и 0,но разница что 1-фигура не замкнутая.По сути единица похожа на 0 в таком контексте.
    5) 0 1 3 6 8 9 разобралось,осталось 2 5 4(похожа на 9) ,тоже как нить по замкнутости проверить и линии по проводить,что пересекут-та фигура и окажется.

    Регулярки при углу наклона и щумовой информации могут лагать.Точнее давать % от затемнения.Хорды или линии и прочие извращения как на примере с тройкой -мне кажется при сильном шуме более подходят
     
  12. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    Есть такая штука, как характеристическая свертка по маске. Если бы собираетесь пробегать по изображению шаблонами, то информацию о сравнении нужно каким-то образом хранить. Сейчас не вспомню, как это делалось точно, но суть такая:
    1. Сначала изображение разбивается на 3 цветовых канала, каждый канал обрабатывается отдельно.
    2. В моём случае объект был залит внутри одним цветом, а снаружи - другим, задача была определить точность контура. На каждую из полученых ч/б картинок последовательно накладывается маска, в которой статистически определялась информирующая зона - чем дальше от границы раздела двух сред мы находимся, тем слабее информационная составляющая. Т.е. маска - это не изображение, а два ч/б изображения, одно выглядит как фигурка, а второе как подсвеченные контуры этой фигурки. Затем маска с фигуркой двигалась по исследуемому образцу (одному из каналов), и вычислялась разница в каждом пикселе. Получалась матрица с разницами по модулю, которая поэлементно перемножается на картинку с посдвеченными контурами. Затем из этой результирующей матрицы получали характеристическую свертку (т.е. одно число, которое показывает, на сколько вероятно, что в этом месте есть изображение как на маске). Как характеристическое число получали я сейчас не вспомню, увы. Но если его значение колеблется около середины, значит здесь нет ничего, а если оно близкое к 1 или 0, значит тут что-то есть.
    3. Процедура 2 прогоняется по каждому каналу. Получается 3 характеристических матрицы для этой маски (это всё только для одного размера маски =)))). Потом эти матрицы преобразуют, чтобы увидеть, на сколько значения отличаются от 0,5, получаются матрицы со значениями от 0 до 0,5. Затем всё это добро объединялось в одну матрицу, где элементы усиливали друг друга при больших значениях (вроде ка по экспоненциальному закону?). Ищем элементы >1 к примеру. Вот и получаем точки, где у нас могут быть искомые фигурки.
    4. Меняем размер маски и начинаем всё с начала.

    В моём случае было достоверно известно, где у фигурки низ, поэтому маски вращать было не нужно. Если нужно вращать, то смотрите нейронные сети - там быстрее алгоритмы, но очень сложно пройти этап обучения. Если так, то вам потребуются многослойные перцептроны.

    Думайте сразу над тем, как оптимизировать работу с памятью. А то до старости будете свои круги искать.
     
  13. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Выскажу и свой бред...

    Я так понял, что дуги ты уже нашел?
    Берем 3 точки (начало, конец и где то между) на дуге. Имеем треугольник. Находим центр и радиус окружности, в которую вписан треугольник. Далее находим точки этой окружности и сравниваем с найденной дугой. Если точки совпадают (с некоторой погрешностью), то значит нашли центр и радиус.

    Но это чисто так, языком поболтать... =))