Нужна функция для обработки изображения,подскажите (или как это называется, или где искать)

Работа с различными видами графики, изображений, решение проблем

Модератор: aim

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Нужна функция для обработки изображения,подскажите

Сообщение t.t » 20.07.2005 21:42

Задачка такая:
Есть картинка, в основном черно-белая, но отсканированная в цвете. Из реально цветного на ней -- только подпись и печать; их нужно "отфильтровать", т.е. оставить только то, что напечатано чёрным. Насколько я понимаю, алгоритм там довольно просто и по идее должен быть реализован в каких-то программах по побработке изображений. Проблема в том, что я даже не знаю, как это называется, т.е. не знаю, что искать. В идеале нужна _реализация_, при чём желательно под BSD-like лицензией, т.к. проект закрытый. Подскажите, пожалуйста, где это реализовано, или хотя бы как это называется.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:

Аватара пользователя
Warderer
Модератор
Сообщения: 1050
Статус: киберпИнгвин на гусеничном ходу
ОС: Debian unstable

Re: Нужна функция для обработки изображения,подскажите

Сообщение Warderer » 21.07.2005 08:50

(t.t @ Среда, 20 Июля 2005, 21:42) писал(а):Задачка такая:
Есть картинка, в основном черно-белая, но отсканированная в цвете. Из реально цветного на ней -- только подпись и печать; их нужно "отфильтровать", т.е. оставить только то, что напечатано чёрным. Насколько я понимаю, алгоритм там довольно просто и по идее должен быть реализован в каких-то программах по побработке изображений. Проблема в том, что я даже не знаю, как это называется, т.е. не знаю, что искать. В идеале нужна _реализация_, при чём желательно под BSD-like лицензией, т.к. проект закрытый. Подскажите, пожалуйста, где это реализовано, или хотя бы как это называется.

Все не настолько тривиально, как ты думаешь. Чем будем заполнять то место, которое находится под надписью? А так если бы в фотошопе - то банальный перевод в LAB и маску по каналу A или В.
Читаю вслух с выражением маны - $50/ч + стоимость звонка. Настраиваю сервисы за Вас - $100/ч + стоимость выезда и проживания.
И восемь строк матом...(бесплатно)
Спасибо сказали:

Аватара пользователя
alv
Бывший модератор
Сообщения: 7261
Статус: Пенсионер в законе
ОС: Cintu

Re: Нужна функция для обработки изображения,подскажите

Сообщение alv » 21.07.2005 08:57

(t.t @ Среда, 20 Июля 2005, 20:42) писал(а):В идеале нужна _реализация_, при чём желательно под BSD-like лицензией, т.к. проект закрытый.


не по подделке ли документов государственной важности?
Спасибо сказали:

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Нужна функция для обработки изображения,подскажите

Сообщение t.t » 21.07.2005 10:50

(Strangerrr @ Четверг, 21 Июля 2005, 7:50) писал(а):Все не настолько тривиально, как ты думаешь. Чем будем заполнять то место, которое находится под надписью? А так если бы в фотошопе - то банальный перевод в LAB и маску по каналу A или В.
Ну, у меня есть такое подозрение, что то место, где был чёрный текст, уже не сможет стать фиолетовым или красным после появления печати, а т.к. результат нужен в ч/б, то я думал, что "заполнять" можно белым. Или есть нюансы?

А как в фотошопе что делается и что такое LAB и маска я, честно говоря, вообще не в курсе.

(alv @ Четверг, 21 Июля 2005, 7:57) писал(а):не по подделке ли документов государственной важности?
Нет :) Всего лишь по их распознаванию. А подпися и печати мешают качественно локализовать для распознавания текст, который под ними.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:

Аватара пользователя
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current

Re: Нужна функция для обработки изображения,подскажите

Сообщение ddc » 21.07.2005 11:05

Для t.t:
Т.ё. задача сводится к тому, чтобы срезать синий (и красный) каналы, и заполнить их как зелёный?
Спасибо сказали:

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Нужна функция для обработки изображения,подскажите

Сообщение t.t » 21.07.2005 11:12

(czarker @ Четверг, 21 Июля 2005, 10:05) писал(а):Для t.t:
Т.ё. задача сводится к тому, чтобы срезать синий (и красный) каналы, и заполнить их как зелёный?
Зелёные печати тоже бывают. Задача в том, чтобы всё, что совсем не чёрное и совсем не белое, стало белым.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:

Аватара пользователя
Warderer
Модератор
Сообщения: 1050
Статус: киберпИнгвин на гусеничном ходу
ОС: Debian unstable

Re: Нужна функция для обработки изображения,подскажите

Сообщение Warderer » 21.07.2005 11:20

(t.t @ Четверг, 21 Июля 2005, 11:12) писал(а):
(czarker @ Четверг, 21 Июля 2005, 10:05) писал(а):Для t.t:
Т.ё. задача сводится к тому, чтобы срезать синий (и красный) каналы, и заполнить их как зелёный?
Зелёные печати тоже бывают. Задача в том, чтобы всё, что совсем не чёрное и совсем не белое, стало белым.


Еще раз - решение твоей проблемы лежит в цветовом пространстве LAB, там это достаточно тривиальная задача. Во всех остальных - очень неслабо повозиться придется. Объяснить доходчиво не смогу, гугли. Ключевые слова - быстрая маска по слою, LAB.
Читаю вслух с выражением маны - $50/ч + стоимость звонка. Настраиваю сервисы за Вас - $100/ч + стоимость выезда и проживания.
И восемь строк матом...(бесплатно)
Спасибо сказали:

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Нужна функция для обработки изображения,подскажите

Сообщение t.t » 21.07.2005 12:54

(Strangerrr @ Четверг, 21 Июля 2005, 10:20) писал(а):Еще раз - решение твоей проблемы лежит в цветовом пространстве LAB, там это достаточно тривиальная задача. Во всех остальных - очень неслабо повозиться придется. Объяснить доходчиво не смогу, гугли. Ключевые слова - быстрая маска по слою, LAB.
Ну, пойду погуглю. Но мне надо именно _утилиту_ такую, т.е. чтобы её программно вызывать можно было, т.к. всё должно быть на автомате. Что-то я уже разуверился, что я нагуглю такое...

t.t добавил в 21.07.2005 12:02

Как я и ожидал, ничего, кроме описаний приёмов работы в фотошопе, гугление не дало.. :(

t.t добавил в 21.07.2005 12:54

(Strangerrr @ Четверг, 21 Июля 2005, 10:20) писал(а):Еще раз - решение твоей проблемы лежит в цветовом пространстве LAB, там это достаточно тривиальная задача. Во всех остальных - очень неслабо повозиться придется.
А кстати, почему неслабо? Мне ведь суперкачество не надо, результат-то вообще в однобитном цвете нужен. Я себе это примерно так представляю: если в некой области из трёх цветов RGB какой-то один близок к нулю, а какой-то другой близок к 100%, то эту область можно забелить. Где я не прав?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:

Аватара пользователя
Warderer
Модератор
Сообщения: 1050
Статус: киберпИнгвин на гусеничном ходу
ОС: Debian unstable

Re: Нужна функция для обработки изображения,подскажите

Сообщение Warderer » 21.07.2005 12:58

(t.t @ Четверг, 21 Июля 2005, 12:54) писал(а):
(Strangerrr @ Четверг, 21 Июля 2005, 10:20) писал(а):Еще раз - решение твоей проблемы лежит в цветовом пространстве LAB, там это достаточно тривиальная задача. Во всех остальных - очень неслабо повозиться придется.
А кстати, почему неслабо? Мне ведь суперкачество не надо, результат-то вообще в однобитном цвете нужен. Я себе это примерно так представляю: если в некой области из трёх цветов RGB какой-то один близок к нулю, а какой-то другой близок к 100%, то эту область можно забелить. Где я не прав?


Тогда решение еще проще. Где R!=G!=B смело забеляй. Ну или сделай дельта-окрестность, на возможное отклонение тона, процентов на 10.
Читаю вслух с выражением маны - $50/ч + стоимость звонка. Настраиваю сервисы за Вас - $100/ч + стоимость выезда и проживания.
И восемь строк матом...(бесплатно)
Спасибо сказали:

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Нужна функция для обработки изображения,подскажите

Сообщение t.t » 21.07.2005 13:43

(Strangerrr @ Четверг, 21 Июля 2005, 11:58) писал(а):Тогда решение еще проще. Где R!=G!=B смело забеляй. Ну или сделай дельта-окрестность, на возможное отклонение тона, процентов на 10.
Так может есть уже готовая реализация чего-то подобного? Не хочется велосипед изобретать.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:

Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin

Re: Нужна функция для обработки изображения,подскажите

Сообщение Bolverk » 22.07.2005 03:08

t.t: Выстрел на слух: а мануал от ImageMagick не пробовал курить?
Спасибо сказали:

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Нужна функция для обработки изображения,подскажите

Сообщение t.t » 22.07.2005 13:21

t.t: Выстрел на слух: а мануал от ImageMagick не пробовал курить?
Чуть попробовал, но я там ничего не понимаю. Но я уже пришёл к мысли, что придётся всё-таки брать какой-то специализированный словарь и пытаться понять man mogrify.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:

Аватара пользователя
JaGoTerr
Сообщения: 380

Re: Нужна функция для обработки изображения,подскажите

Сообщение JaGoTerr » 22.07.2005 13:36

Да 100% imagemagick должен помочь. Я с годик назад ковырялся с ним по похожим задачам (там правда попроще было - печать надо было найти на пустом листе и обрезать всё лишнее) и решение было найдено. Достаточно навороченная библиотечка по функционалу.

Либо, если уж совсем тебе припрёт, есть Java Imaging API. Но с ней ты задолбаешься разбираться ещё больше. Для людей, не сведущих в компьютерной графике - эта трындец. Я на свой аглицкий не жалуюсь, но в те дни сервак Яндекс-лингво наверное попахивал дымком :D Там тааакие дебри...
Спасибо сказали:

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Нужна функция для обработки изображения,подскажите

Сообщение t.t » 22.07.2005 14:32

Да 100% imagemagick должен помочь.
Почитаем, попробуем.
в те дни сервак Яндекс-лингво наверное попахивал дымком
О, это тоже идея; я как-то забыл про него.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:

Аватара пользователя
Jinn
Сообщения: 698
Статус: Интересующийся бывалый прохожий

Re: Нужна функция для обработки изображения,подскажите

Сообщение Jinn » 22.07.2005 16:04

А не проще ли было бы взять gimp, выделить область и поменять в ней каналы?
Don't trouble troubles until troubles trouble you!
Спасибо сказали:

Аватара пользователя
JaGoTerr
Сообщения: 380

Re: Нужна функция для обработки изображения,подскажите

Сообщение JaGoTerr » 22.07.2005 16:22

Для Jinn:
Или напечатать на бумагу, замазать мазилкой, отсканировать повторно, потом распознавать. Тоже решение. И ровно в той же мере удовлетовряет потребности программного выполнения этой операции.

JaGoTerr добавил в 22.07.2005 16:22

А ещё есть такая штука, которая называется xnee. Она может запоминать, а потом повторять все действия пользователя (ввод с клавы, тыканье мышой и пр. Типа макросы такие получаются). Можно запустить gimp, а потом с помошью такого вот "макроса" выполнить необходимые операции по преобразованию каналов :lol:
Спасибо сказали:

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Нужна функция для обработки изображения,подскажите

Сообщение t.t » 22.07.2005 17:15

(JaGoTerr @ Пятница, 22 Июля 2005, 15:22) писал(а):А ещё есть такая штука, которая называется xnee. Она может запоминать, а потом повторять все действия пользователя (ввод с клавы, тыканье мышой и пр. Типа макросы такие получаются). Можно запустить gimp, а потом с помошью такого вот "макроса" выполнить необходимые операции по преобразованию каналов  :lol:
Особенно приятно будет собирать гимп под винду для этого :D
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:

Аватара пользователя
Alejandro
Сообщения: 98
Статус: Наследник "Астарота"

Re: Нужна функция для обработки изображения,подскажите

Сообщение Alejandro » 26.07.2005 01:26

(t.t @ Пятница, 22 Июля 2005, 16:15) писал(а):
(JaGoTerr @ Пятница, 22 Июля 2005, 15:22) писал(а):А ещё есть такая штука, которая называется xnee. Она может запоминать, а потом повторять все действия пользователя (ввод с клавы, тыканье мышой и пр. Типа макросы такие получаются). Можно запустить gimp, а потом с помошью такого вот "макроса" выполнить необходимые операции по преобразованию каналов  :lol:
Особенно приятно будет собирать гимп под винду для этого :D



1. В Винде достаточно элементарно пишутся макросы на любую последовательность действи в любом приложении.
2. Давай мыл - скину реализацию. Солюшн на .NET. Откроешь в MS VS 2003 или 2005, нажмешь Build -> Build Solution и будет тебе счастья немеряно :)
Follow the white Rabbit!
Спасибо сказали:

Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin

Re: Нужна функция для обработки изображения,подскажите

Сообщение Bolverk » 26.07.2005 20:32

Да есть гимп под винду нативный.
Спасибо сказали:

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Нужна функция для обработки изображения,подскажите

Сообщение t.t » 27.07.2005 12:28

2. Давай мыл - скину реализацию. Солюшн на .NET. Откроешь в MS VS 2003 или 2005, нажмешь Build -> Build Solution и будет тебе счастья немеряно
Давай на tarnavski ухо bigmir тчк net

Да есть гимп под винду нативный.
Да ладно, это ж я так, для прикола.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Нужна функция для обработки изображения,подскажите

Сообщение t.t » 28.08.2005 23:41

(Alejandro @ Вторник, 26 Июля 2005, 0:26) писал(а):2. Давай мыл - скину реализацию. Солюшн на .NET. Откроешь в MS VS 2003 или 2005, нажмешь Build -> Build Solution и будет тебе счастья немеряно
Ты знаешь, ты если не сделаешь -- то лучше не обещай, ладно? Одно дело, когда ты раньше обещал что-то, что мне чисто для своего любопытства надо было, другое дело -- по работе. Я тебя две недели прождал, а теперь всё равно с нуля искать приходится.

2all: Вопрос опять открыт. Докой по ImageMagic обчитался по самое "не могу", сейчас, конечно, ещё раз просмотрю, но голова уже квадратная от всего этого. Боюсь, готовыми фильтрами не получится. Пришла в голову бредовая мысль: а нет ли случайно готовой утилитки или простенькой библиотеки, которая бы позволяла попиксельно проверять некие условия и в зависимости от них чего-то с этими пикселами делать? Я уже и libtiff-dev обчитался, но там всё слишко наворочено -- разбираться дольше чем писать.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:

Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Нужна функция для обработки изображения,подскажите

Сообщение elide » 29.08.2005 21:21

скинь пример картинки - если не секретная, конечно.
а мы уж раскурим эту тему....
слава роботам!
Спасибо сказали:

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Нужна функция для обработки изображения,подскажите

Сообщение t.t » 30.08.2005 02:12

(elide @ Понедельник, 29 Августа 2005, 20:21) писал(а):скинь пример картинки - если не секретная, конечно.
Сейчас все значимые поля забелю -- станет несекретная :)

Вообще, уже почти придумал нужную формулу для convert -fx, но боюсь, очень медленно получится.

t.t добавил в 30.08.2005 02:12

Соорудили формулу. Получилось убрать печать с помощью convert -fx с таким аргументом:
min((r+1)*1.1/(b+1),1)*min((b+1)*1.1/(g+1),1)*min((g+1)*1.1/(r+1),1)*(2*max(r,max(g,b))-min(r,min(g,b)))

Одна беда -- медленно. Лист А4 обрабатывался 26 минут. если даже работать только нужную область -- выйдет в пересчёте больше двух минут, это недопустимо долго.

Так что выложу пример печати с подписью, и заодно то, что получилось:

¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:

Аватара пользователя
Данил
Сообщения: 944
ОС: windows xp, cruncheee, ddwrt

Re: Нужна функция для обработки изображения,подскажите

Сообщение Данил » 17.09.2005 22:59

Легко! :lol:
gimp 2.0
1 слой > цвета > порог
2 изображение > режим> 1bit
3 фильтры> анимация> оптимизация gif
4 save gif

В принципе и 1 хватит!
ASUS eee pc 701 [windowsXP sp3] [Ubuntu linux]
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600

Противник HAL NETWORKMANAGER и других подобных паделок!!!
Спасибо сказали:

Аватара пользователя
aLexx programmer
Сообщения: 985
Статус: Турук-Макто
ОС: Gentoo -> Ubuntu

Re: Нужна функция для обработки изображения,подскажите

Сообщение aLexx programmer » 18.09.2005 22:24

Для Данил: подпись осталась, если ты не заметил.
Спасибо сказали:

Аватара пользователя
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current

Re: Нужна функция для обработки изображения,подскажите

Сообщение ddc » 18.09.2005 22:55

Для Данил:
А фон???
Спасибо сказали:

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Нужна функция для обработки изображения,подскажите

Сообщение t.t » 20.09.2005 01:38

Данил писал(а):
17.09.2005 22:59
Легко! :lol:
gimp 2.0

М-да... Не буду повторяться:
JaGoTerr писал(а):
22.07.2005 16:22
Или напечатать на бумагу, замазать мазилкой, отсканировать повторно, потом распознавать. Тоже решение. И ровно в той же мере удовлетовряет потребности программного выполнения этой операции.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:

Аватара пользователя
Данил
Сообщения: 944
ОС: windows xp, cruncheee, ddwrt

Re: Нужна функция для обработки изображения,подскажите

Сообщение Данил » 21.09.2005 20:09

Если надо удалить еще и подпись (я наоборот думал, что надо сохранить:)
1 > ставим порог в 99 # удаляем подпись и штамп
2 > фильтры > размывание > размывание [случайное зерно, Случайность 100%, Повтор 1%] # восстанавливаем буквы
3 > фильтры > улучщение > нерезкая маска > [значение ближе к большему]
4 > фильтры > размывание > размывание [случайное зерно, Случайность 100%, Повтор 1%]
5 > изображение > режим > градации серого #уменьшаем размер файла
6 > Фильтры > анимация > оптимизация gif #уменьшаем размер файла
7 > save gif

эта функция - порог!
ASUS eee pc 701 [windowsXP sp3] [Ubuntu linux]
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600

Противник HAL NETWORKMANAGER и других подобных паделок!!!
Спасибо сказали:

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Нужна функция для обработки изображения,подскажите

Сообщение t.t » 22.09.2005 10:22

Ещё раз: отсечение должно выполняться _автоматически_, в процессе сканирования страниц. То, что это можно сделать гимпом, я и так понимаю, но в данном случае гимп совершенно ни при чём.

И вообще, тема уже закрыта -- пишем сами. Не знаю, кстати, почему конверт так долго это обсчитывает -- на сях примерно тот же алгоритм, что сокрыт в выложенной мною формуле, просчитал всю картинку меньше чем за секунду.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали: