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

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

Повесить над доской камеру и записывать лекции? Идея.
А если доска будет зелёная?
Можно написать универсальный скриптик на каком python, который будет убирать фон любого цвета, инвертировать что нужно… было бы желание, алгоритмы то простые.
convert in.jpg -negate \( +clone -blur 0x20 \) -compose Divide_Src -composite -normalize -level 10%,90% -unsharp 0x5+2+0 out.jpg

Пробуйте, должно получиться более-менее. Только с цветными мелками будет проблема — нужно инвертировать цвета:)
Спасибо за скрипт. Я, как новичок в в linux, поражен такой краткостью и такими результатами. Раньше я бы открывал фотошоп и начинал применять кучу фильтров… Еще один плюс к карме моей Ubuntu :)
ImageMagick никто не отменял на Mac и Windows
Кучу не надо. Select->Color Range это все.
попробуйте Color Range на исходном изображении из статьи, и вы увидите, что это далеко не всё. Больше получаса не тратьте — скрипт и ImageMagic работают действительно хорошо.
levels + color range мне кажется справится. Увы под рукой сейчас нету ничего что бы проверить.
Скорее всего нет.
Буквы вверху на светлом фоне — светлее чем фрагменты фона в середине. Так что levels и color range — не дадут нормальную картинку. Придется добавить фильтр четкости, и желательно обработки теней. Делается это все элементарно, но командой конечно проще)
В WP8 есть приложение от МС для камеры Office Lens, с очень похожим результатом.
Фотаешь доску после митинга, получаешь чистую фотку и в один клик импортишь в OneNote
Вот результат фотографирования доски с экрана монитора dl.dropboxusercontent.com/u/486235/wp_ss_20140404_0001.png
Огромное спасибо за наводку.
fix:
#!/bin/bash
convert "$1" -morphology Convolve DoG:15,100,0 -negate -normalize -blur 0x1 -channel RBG -level 60%,91%,0.1 "$2"

Обратите внимание на кавычки вокруг $1 и $2 — без них не поддерживаются длинные имена файлов.
Длинные поддерживаются, пробелы в именах не поддерживаются.
Ну, я оговорился. Имел в виду именно пути с пробелами.
В ImageMagick очень много способов сделать это:

www.fmwconcepts.com/imagemagick/whiteboard/

Недостаток этого скрипта в том, что он работает довольно медленно.

Вот этот скрипт делает то же самое, но быстрее и на все времена (из документации ImageMagick):

convert in.jpg \( +clone -blur 0x20 \) -compose Divide_Src -composite -normalize -level 10%,90% -deskew 40% -unsharp 0x5+2+0 out.jpg


Добавить -deskew 40% — по вкусу, чтобы компенсировать вращение камеры.
да, действительно быстрее, на моей машине — раза в два.
Но у скрипта «whiteboardClean.sh» получилось более «жирно».
Тут уже как уровни подкорректировать. Я unsharp и level на глазок поставил. Можно paint или median фильтр применить, буквально единичку для более равномерного контура. А если убрать unsharp и deskew — ещё раза в два быстрее будет:)

Я аналогичный алгоритм для обработки сканов использую, но там надо аккуратно — попадаются рисунки, которые такими агрессивными фильтрами можно сильно покалечить. Будет время сделаю заметку на эту тему.
как след. шаг конвеера добавить распознование символов по изображению и сохранить в pdf например
И назвать это дело Evernote :)
НЛО прилетело и опубликовало эту надпись здесь
Это очень легко сделать на самом деле — из AppleScript вызывать bash-скрипт с переданным именем файла. А выполнение AppleScript повесить на событие помещения файла в указанный каталог.
посмотрите в коментариях Гиста, там есть пример:

gist.github.com/lelandbatey/8677901
Скрипт
on open thefiles
  repeat with thefile in thefiles
    set finalpath to POSIX path of thefile
    do shell script "mktemp -t image"
    set temppath to the result
    set success to false
    try
      do shell script "/usr/local/bin/convert '" & finalpath & "' -morphology Convolve DoG:15,100,0 -negate -normalize -blur 0x1 -channel RBG -level 60%,91%,0.1 '" & temppath & "'"
      set success to true
    on error theerror
      display dialog "Conversion failed: " & theerror
    end try
    if success then
      do shell script "mv '" & temppath & "' '" & finalpath & "'"
      display notification "Converted " & finalpath
    end if
  end repeat
end open



НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Слева походу комп, и малый, спиной сидит в майке.
Я немного не соглашусь со статьей «How to clean up photos of whiteboards with Gimp».
Вот мой результат через фотошоп.
Обратите внимание, текст какой был такой и остался. Никаких фильтров обработки краев (читай прощай детали) к нему не применялось. Изображение обрабатывалось только контрастными фильрами.
Заголовок


А фишка оочень простая.
Для того чтобы вычленять объект по контрасту с однородного фона, который освещен неравномерно. (засветы сверху) нужно выравнять его с помощью фильтра highpass. Этим мы убираем перепады овещения. После этого работаем уровнями по привычке.

Никаких деструктивных действий для деталей текста, которые используются в примере выше здесь не применяется. В следствие чего у нас выходит неплохой результат.
Пример


Все консольные программы хороши только тем что на них можно орабатывать изображения без интерфейса. А вот без интерфейса вы параметры для фильтров через консоль просто замучаетесь подбирать.

Все консольные программы хороши только тем что на них можно орабатывать изображения без интерфейса.

Они хороши тем, что работают быстро и применимы к целому ряду задач. Вот методом ручной коррекции в GIMP отсканированную книгу 500 листов не обработаешь, а в ImageMagick — элементарно. Если у вас куча таких лекций и сотня фотографий — ImageMagick ваш друг.
Для ручной коррекции пакетной обработки есть в шопе actions и batch proccessing тока они меня бесят, поскольку грузять все в интерфейс (оперативку) и только вот потом уже… Не знаю что там на счет гимпа.

В любом случае, подобрать параметры, играть с тестовым изображением лучше в графическом редакторе, а уже эти настройки использовать как константы для консольных утилит, которые я никак не принижаю.
Отработать коэфиценты фильтров на тестовых фотографиях лучше в GUI.
В шопе… Каждому студенту по программе за килобакс, для того чтобы фоткать лекции:) В ГИМПе такой batch, что можно сказать его и нет. Для студента как раз полезнее приобщиться к IM-сообществу, так как есть реально чему поучиться, поучаствовать в GSoC и т. п.

В любом случае, подобрать параметры, играть с тестовым изображением лучше в графическом редакторе

Это пожалуй единственное, чего не хватает в ImageMagick после GIMP/PS. Там есть GUI, но он настолько убог, что командная строка на порядки удобнее. Но сделать обертку над ImageMagick в виде GUI не так уж сложно, так что со временем не исключено что появится.
Мы то тут не обсуждаем студентов) а реализацию идеи) С вами я согласен)
Вдохновленный статьей сделал за выходные сервис — сейчас доступен по ссылке http://api.o2b.ru/whiteboardcleaner

Правда текущая версия поддерживает только единичную загрузку и браузеры с поддержкой HTML5.
Как-то не особо работает...
image

И при попытке скачать какие-то неведомые неполадки сервера :)
Какой у вас браузер и его версия?
И было бы хорошо, если бы вы дали ссылку на файл, который вы загружали. Чтобы можно было проверить. Т.к. на сервере файлы не сохраняются, все делается в пямяти.
Под убунтой проверить пока нет возможности, но под последней версией Chromе 33.0.1750.154 m под Win7 эта картинка обрабатывается нормально
Картинка
image
Проверил под Убунтой 12 x64, в Chrome 33 работает. http://s16.postimg.org/xcs9noa2t/Capture.png. На сайте нашел только 12 и 13 версию, 14 версии не видел.
Странно… При выборе изображения оно отправляется на сервер, сервер отвечает
Успехом
{
  "data": {
    "updated_date": null,
    "delete_date": "2014-04-08T00:00:00",
    "url_get": "/file/QyY5stciWdVREegoe1iGWYsWnFsHHRtO",
    "url_delete": "/file.delete/6SOxiitH1r4bYDkVaeepd7SPjlhu5rTi",
    "created_date": "2014-04-06T14:30:26.400509",
    "deleted_date": null,
    "size": 54885,
    "type": "image/jpeg",
    "id": 43,
    "name": "t6nZck7NQR0.jpg"
  },
  "success": true
}

Но по адресу api.o2b.ru/file/QyY5stciWdVREegoe1iGWYsWnFsHHRtO nginx отвечает 403.
Да, это был баг в настройках самого веб-сервера. Проверьте, пожалуйста, сейчас.
Теперь отлично работает! Спасибо!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории