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

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

Обалденно! Так просто и настолько же круто!
Только исходники не качаются :(
Извиняюсь, поправил
Отличная статья!
Столько методов обработки изображения (и не только), собранных вместе…
Это ничуть не умаляет его достоинств и фундаментальности. Программируя на различных других языках, которые были написаны на C\C++ очень сильно чувствуешь это.
Ну C++ может напрямую работать с памятью, а сейчас в моде скриптовые языки. Возможно поэтому происходит подмена понятий.
Интересно!

Вопрос только почему у него уходит 100мс на получение изображения с камеры, вроде большая часть современных вебкамер может отдавать 30фпс при VGA… или он имеет в виду именно задержку между событием и получением кадра?
Нет, задержка именно получения кадра, я тоже был удивлён. К сожалению гадать почему, не имея названия и модели камеры, вряд ли целесообразно.
Я бы не стал называть Integral Image целочисленным. Целочисленный от слова целое число (кэп). Тут либо интегральное изображение, либо что-то еще.
Вот тут собственно написано подробнее об интегральном представлении: habrahabr.ru/blogs/algorithm/102919/
интересная статья, спасибо за перевод
кстати, ссылку на источник укажите, плиз.
Ссылка есть стандартными средствами хабра, в конце статьи, слева от имени опубликовавшего автора (NeonMercury) есть имя Bojan Banko, автора. При клике на его имени по ссылке, произойдёт переадресация на статью-первоисточник.
НЛО прилетело и опубликовало эту надпись здесь
Отличный пост, хорошо все расписано. Спасибо, было интересно!
Супер! Pагорелся реализовать свою версию под iOS
*Загорелся
тоже хотел, но нету времени. Удачи)
НЛО прилетело и опубликовало эту надпись здесь
класс! нашел в сторе бесплатную версию, аналог и бесплатный аналог.
НЛО прилетело и опубликовало эту надпись здесь
нет, ну я совершенно искренне рад как ребёнок этим OCR бумажных судоку :) люблю судоку, а тут такое. а вы что нашли за те 10 минут? )
НЛО прилетело и опубликовало эту надпись здесь
ну, текстовый граббер понятно полезнее, но им и никого не удивишь )
НЛО прилетело и опубликовало эту надпись здесь
Никто и не спорит, но автор статьи это не для «игры таким вот образом» делает, а для фана и обучения себя любимого. И проги под iOS наверняка написаны для этого же.

С точки зрения пользователя их можно применять для получения решения, в которое можно будет заглянуть после/во время отгадывания бумажного судоку. Или, скажем, для оцифровки и решения наперегонки — игровые функции вполне реализованы. А вот мне, например, просто достаточно открыть, попробовать оцифровать и порадоваться, что кто-то это реализовал. К примеру, на прошлой неделе я наткнулся в сторе на прогу, решающую кубик-рубика — казалось бы тоже безделица, но меня вставило.
Несомненно, реализаций в разном доступе очень много. Но всегда интересно сделать самому и попытаться сделать это лучше, чем у других:)
НЛО прилетело и опубликовало эту надпись здесь
> Чтобы b/w (просто поочерёдное усреднение значений пикселей) был дольше
Дык в тексте же написано.
«И эти подсчёты производятся для каждого пикселя. Поэтому данный шаг является таким медленным, ведь алгоритм требует ширина*высоты*121 чтений пикселя изображения.»
НЛО прилетело и опубликовало эту надпись здесь
Перевод видно сразу по слову «действительно».
Это как лакмус, в русском это слово используется редко.
Перевод «i really wanted to...» лучше делать как «я очень хотел...».
НЛО прилетело и опубликовало эту надпись здесь
Кстати, я тоже «действительно» произношу не реже других слов в своей речи. С чего вы взяли, что слово редкое?
Ну даже если вы его часто используете, его нужно использовать с толком.
Калька с английского really не подходит, если мы стремимся сделать качественный перевод.
На самом деле, подобное обращение я расцениваю как оскорбление. Этот текст содержит около 3000 слов, состоящих из почти 20 000 символов. Среди этих слов и оборотов, было сделано крайне много адаптаций, чтобы текст читался приятно, глаз не цеплялся за неверные слова.
Поэтому, я считаю, «калька»- сугубо ваше личное негативное восприятие, никак не влияющее на качество перевода.
Перевод не идеален, потому что я не переводчик, даже на курсы не ходил. Всего лишь закончил 11 классов в школе с обычным (даже не усиленным) изучением английского. Я просто программист, который перевёл для своих товарищей интересную, познавательную и одновременно сложную статью. Поэтому если вам не нравится, что «really» я перевёл как «действительно», то скорее всего это вам не нравится, а не перевод плохой.
Извиняюсь за незакрытый тег :(
Что ж все компьютерщики такие чувствительные :)
Не собирался я вас обижать.
Неужели, если вы что-то делаете, вам не хочется сделать это как можно лучше? А если вы допустили какие-то мелкие неточности, неужто вам не интересно узнать об этом, чтобы в следующий раз сделать всё ещё лучше?
Я замечания писал не для того, чтобы вас оскорбить, как вы говорите. А исключительно из любви к перфекционизму.
Статью вы в целом перевели очень хорошо, труд ваш даром не прошёл, она всем понравилась. Поздравляю!

>> замечания ... А исключительно из любви к перфекционизму.

Неплохо бы этот принцип применить к собственным публикациям

Интересно наблюдать, как одна задача развёртывается во много задач :)
НЛО прилетело и опубликовало эту надпись здесь
Определить — это ерунда, вот ездить на нём…
Теперь какой-нибудь самородок из России должен в ответ сделать авторешатель кроссвордов!
Не пашет хреновина ))) Пруфпик:
О! Я вспомнил про tesseract-ocr! Ведь так давно хотел его потыкать…
Вы провели отличную работу!
Как-то очень быстро 7мс на решение. Непереборные алгоритмы до 200мс на самых сложных судоку отрабатывают. Этот, например. Правда это Python, а не C++.
Набросал простенький алгоритм на Си. Даже т. н. самое сложное судоку укладывается в две миллисекунды. Процессор Core 2 Duo 2 GHz.
>> Переписать программу под Android.
Google Goggles уже имеет такую функциональность, правда распознавание идет через сервер
Попробовал под Win7 на своём Lenovo G560. Изображения с вебки почему-то нет.
Сама статья, кстати, очень годная, хотя мелкие ошибки стоит поправить. Благодарю за такой интересный материал, будет теперь о чём подумать.
Гениально. Давно задавался вопросом, каким образом действуют подобные системы, вот теперь имею общее представление. Код к сожалению нет времени читать, да и с C++ знаком довольно поверхностно. Спасибо за перевод. Однако демка у меня почему-то не работает, не определяет и не считает(
Нажимал все пункты менюшки, эффект == zero
Мда, у меня отчего-то тоже не работает(( Картинка есть, но эффекта нет никакого…
Рискну предположить что проблема скорее всего где-то на уровне дрова->программа.
НЛО прилетело и опубликовало эту надпись здесь
Ну статья, к сожалению, не моя, я всего лишь переводчик.
А если рассматривать автора, то он пишет, что всё просто так, just for fun
НЛО прилетело и опубликовало эту надпись здесь


Здесь.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
На судоку 4 на 3 не сработало…

А вот 3 на 3 отлично вычисляет! Спасибо!
Очень интересно. Только слово «пазл» несколько раздражает, в русском языке у него более узкое значение, мне кажется, что логичнее использовать слово «головоломка».
Применяя к картинке порог, вы делаете, имхо, большую глупость — теряете большое количество информации. Это особенно важно для цифр и букв в небольшом разрешении (если у вас цифра высотой 100 пикселов то конечно пофиг). Надо работать с цифрами в градациях серого. Откуда вообще идет эта дурацкая традиция?

Также, стоило бы воспользоваться хитростями устройства человеческого мозга: как мы отличаем например 8 от B? Мы специально смотрим на форму левой палочки, то есть при распознавании конкретной цифры и сравнении с образцом некоторые участки изображения имеют значительно больший приоритет, чем другие. Это как японимаю, в вашем алгоритме не учитывается. Печально. Японские иероглифы вашим алгоритмом точно не разберешь :)
Ушёл дописывать программу, играющую в рулетку через вебкамеру в реальном времени.
> Как это работает? Вы должны вспомнить школьную формулу
> y=(x*cos(theta)+rho)/sin(theta).

Насколько я помню, формула такая: x*cos(a)+y*sin(a)=r, откуда y=(r-x*cos(a))/sin(a).
Отличная статья. Смешная опечатка: «программа начинает переДирать значения»
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории