Как стать автором
Обновить

Комментарии 19

А что мешает хотя бы светодиодом подсвечивать счетчик? Задача значительно проще станет.

з.ы. а в цифровых счетчиках, если я не ошибаюсь, показания можно вообще напрямую снимать.
Если вы — РЭС, то можно и напрямую.
Это и есть светодиод. Подсветка сбоку, потому что "в лоб" дает блики на стекле.

Что вы подразумеваете под "снимать напрямую"? Мы хотим сделать такую штуку — получить данные со счетчика на сервер и дать возможность пользователю оплатить КУ со смартфона, не вставая с дивана или находясь на даче (Памире, Тибете, МКС, etc), при наличии интернета, естественно. И чтоб услуга была подъемной по цене для среднего россиянина.
По поводу того, чтоб счетчик "из коробки" передавал данные на сервер… Ну, выше уже ответили. Если вы не работаете на РЭС, то это сложно сделать. Не по техническим, а по бюрократическим соображениям.
В нашем "неумном доме" все счётчики электронные и автоматически передают показания в контролирующую компанию. Каждый месяц приходит бумажная квитанция, но я их просто складирую. Счета оплачиваю через сбербанк-онлайн не выходя из дома (у сбера уже все данные есть, нужно только номер клиентского договора ввести, все реквизиты и сумма, которую надо заплатить, автоматически подставляются).

Так и должно быть в "умном доме", мне кажется.
Т.е. по сути это почти алгоритм адаптивного порогового преобразования, используемый в OpenCV. Пиксель сравнивается со средним по окрестности + подстроечная константа.
Только вот неясно, окрестности усреднения статические или центрированы по вычисляемому пикселю?
Окрестности усреднения привязаны к вычисляемому пикселю. Область заданного размера "проходит" по всему изображению с шагом в единицу (одна строка или столбец матрицы интегрального изображения), на каждом шаге вычисляется яркость по всей области.
Ну вот, а говорят Хабр умирает.
Спасибо за статью! А не могли бы вы добавить ссылки на методы Ниблэка и Кристиана?
web.mit.edu/mfeng/www/papers/mengling_ieice.pdf — математика и сравнительный анализ;
liris.cnrs.fr/christian.wolf/software/binarize/ — реализация на С++ обоих методов от самого Кристиана Вульфа;
Спасибо
а еще очень здорово помогает совсем отказаться от бинаризации при работе с изображениями такого качества, а то всегда получается приличная вероятность невосполнимой потери информации.
А можно с этого места поподробнее?
Например, как решить задачу выделения связныхз областей на изображении без его бинаризации?
Сразу по градиентам, мне кажется, можно это сделать. Начинаем watershed из локального минимума длин градиентов, потом расползаемся до линии локальных максимумов градиента. Картинка наверху вот этой страницы намекает, что так работает (как минимум одна) библиотека для ImageJ.
а) ну действительно по градиентам, хотя оно часто ошибается.

б) есть определенный "паттерн" чтоли в проблемах распознавания текста, который остался со времен совсем бедных средств вычислений, что нужно разбить на символы, а только потом распознавать. Хотя сейчас средства вычисления тянут для каждой точки изображеиня задаться вопросом " а не символ ли это". Потом, зная то, как знаки вообще располагаюстя (в строку, например, расстояние не больше такого-то, не меньше такого-то), аккуратно разобрать локальные максимумы, которые получатся в этом пространстве. Я к тому, что невозможно разбить на символы, если не использовать знания о том, что из себя эти символы представляют. Могут быть слипшиеся, могут плохо качества, визуальные помехи мешают это сделать.
вот так например: image.

  1. картинка — исходная
  2. потестировали все возможные масштабы, повороты, положения (много ложняков видно, но ничего)
  3. определили перспективное преобразование, при котором все это чутка похоже на автомобильный номер
  4. и зная как устроен этот самый номер, уже решили задачу распознавания
Вроде, в вашей же публикации об этом уже было. Расскажите поподробнее, пожалуйста. Может, даже отдельной статьей.
НЛО прилетело и опубликовало эту надпись здесь
по изображению видно, что Оцу (так как он глобальный), просто часть картинки чёрной сделает из-за плохой яркости в той области. Мульти-Оцу (как я понимаю, это просто Оцу по каждому каналу), поведёт себя примерно также
Мульти-Оцу (как я понимаю, это просто Оцу по каждому каналу)

Неправильно понимаете (если я правильно понимаю вас). Цветовые каналы тут вообще не при чём. "Мульти" — это значит, что изображение разбивается на уровни (labeling) обычно по гистограмме, а далее для каждого уровня считается порог методом Otsu. Получается такой "локальный otsu". Общее название подобных методов: Multilevel Thresholding, а также Rank filters.


Смотрите, например, эту статью: http://www.iis.sinica.edu.tw/page/jise/2001/200109_01.pdf
Пример в scikit-image: http://scikit-image.org/docs/0.12.x/auto_examples/segmentation/plot_local_otsu.html

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации