OCR форумы Добро пожаловать, Гость. Пожалуйста, выберите Вход или Регистрация
На Форуме произошел сбой системы. Возможна некорректная работа отдельных функций форума. По всем вопросам обращайтесь к Администратору.
The Forum has crashed. Some functions of the forum may not work correctly. For all questions, please contact Administrator.
 
  ГлавнаяСправкаПоискВходРегистрация Администратор Библиотека  
 
Переключение на Главную Страницу Страниц: 1
Послать Тему Печать
Хотелка по чистке обложек (Прочитано 16391 раз)
nbl
Гуру
****
Вне Форума



Сообщений: 502
Кузбасс
Пол: male
Хотелка по чистке обложек
09.07.2009 :: 12:37:29
 
Я, вроде как, более или менее приспособился переводить сканы обложек в малоцветные. Но на результате остается мелкий мусор, как на прицепленной картине. Может есть какая программа для автоматической вычистки такого мусора. Нечто похожее на режимы "Удалить мусор" и "Залить дырки" в программе RasterID. Как я понял, RasterID может применять их только к битональным картинкам. Может monday2000 сподобится что-то написать? Я сам только начал пробовать использовать библиотеку FreeImage и не уверен, что у меня что-то получится. С программированием графики я никогда не работал.

http://www.onlinedisk.ru/image/175519/img2241.png
Наверх
 
 
IP записан
 
monday2000
Постоялец
**
Вне Форума


Всем привет!

Сообщений: 98
Пол: male
Re: Хотелка по чистке обложек
Ответ #1 - 09.07.2009 :: 14:03:05
 
nbl
Цитата:
С программированием графики я никогда не работал.

А какой компилятор Вы используете? Вообще-то это довольно просто (азы "графики" т.е.).
Цитата:
Может monday2000 сподобится что-то написать?

"Удалить мусор" - это называется despeckle - вот он: http://www.djvu-soft.narod.ru/bookscanlib/010.htm . Но despeckle работает только с чёрно-белыми изображениями. Вам нужен "цветной despeckle". Как его сделать, я пока не в курсе. Спросите тут: http://forum.ru-board.com/topic.cgi?forum=93&topic=3172&glp - вроде бы есть некая программа с "цветной despeckle".

"Залить дырки" - тоже пока я не интересовался.

То, что я могу сделать - это "перебить" уже готовый некий алгоритм под FreeImage. Так что попробуйте поискать в Интернете готовую реализацию таких алгоритмов. Я тоже гляну одним глазком.
Наверх
 
WWW  
IP записан
 
monday2000
Постоялец
**
Вне Форума


Всем привет!

Сообщений: 98
Пол: male
Re: Хотелка по чистке обложек
Ответ #2 - 09.07.2009 :: 14:44:30
 
Мне удалось выяснить, что алгоритм заливки дырок называется по-английски "Hole fill algorithm". Вот пример описания: http://books.google.ru/books?id=8uGOnjRGEzoC&pg=PA643&dq=Hole+fill+algorithm&hl=...

ИМХО это похоже на "despeckle наоборот" - т.е. вычищание белых точек на чёрном фоне. И не на простой despeckle даже, а на Fine Despeckle как в СК - т.е. удаление всех объектов меньше заданного диаметра.
Наверх
 
WWW  
IP записан
 
monday2000
Постоялец
**
Вне Форума


Всем привет!

Сообщений: 98
Пол: male
Re: Хотелка по чистке обложек
Ответ #3 - 09.07.2009 :: 16:00:22
 
Неожиданным образом выяснилось, что (по идее) и заливка дырок, и цветной despeckle могут быть (наверно; я не пробовал реально) реализованы одним и тем же алгоритмом! А именно, вот этим (или его модификацией):

http://www.aforgenet.com/framework/docs/html/4a83d944-d776-ba2c-9847-3254fe3dbfd...

Это называется "Blob filtering". Вот подробности: http://www.aforgenet.com/forum/viewtopic.php?f=4&t=100

Вот теория: http://homepages.inf.ed.ac.uk/rbf/HIPR2/label.htm

Не знаю, как всё это на самом деле может работать, но идея ИМХО интересная.
Наверх
 
WWW  
IP записан
 
nbl
Гуру
****
Вне Форума



Сообщений: 502
Кузбасс
Пол: male
Re: Хотелка по чистке обложек
Ответ #4 - 10.07.2009 :: 06:04:11
 
Я получил, что хотел, и очень рад!
Не смотря на предупреждения, я попробовал на своих обложках алгоритм despeckle (http://www.djvu-soft.narod.ru/bookscanlib/009.htm). В результате получилось именно то, что мне хотелось. Большое спасибо monday2000! Конечно, программа работает несколько медленно, но не катастрофично медленно. Для меня это непринципиально. Пробовал на файле с 16-ти-цветной палитрой и реальным количеством цветов 7 - тоже работает!

Вот мой тестовый файл: http://www.onlinedisk.ru/image/176006/test.png
Наверх
 
 
IP записан
 
nbl
Гуру
****
Вне Форума



Сообщений: 502
Кузбасс
Пол: male
Re: Хотелка по чистке обложек
Ответ #5 - 10.07.2009 :: 06:32:36
 
Да, забыл сказать. Я использовал для компиляции TCC (Tiny C Compiler). Он работает только с чистым C, поэтому пришлось чуток подправить despec1.c. Прикладываю комплект моих файлов.

http://www.onlinedisk.ru/file/176009/
Наверх
 
 
IP записан
 
monday2000
Постоялец
**
Вне Форума


Всем привет!

Сообщений: 98
Пол: male
Re: Хотелка по чистке обложек
Ответ #6 - 10.07.2009 :: 09:02:35
 
nbl
Цитата:
Не смотря на предупреждения, я попробовал на своих обложках алгоритм despeckle (http://www.djvu-soft.narod.ru/bookscanlib/009.htm). В результате получилось именно то, что мне хотелось.

А, ну да, данный алгоритм (в отличие от http://www.djvu-soft.narod.ru/bookscanlib/010.htm) действительно может (с теоретической точки зрения) работать с цветными изображениями. Другое дело, что результат его работы не всегда может быть в виде despeckle - для полноцветных изображений (вроде Greyscale) получается (насколько я помню) грубое гадкое размытие (и то при апертуре 5х5, 3х3 ничего не оказывает). Потому-то я там и написал, чтобы не использовать для цветных.

Данная реализация же может напрямую работать с индексированными цветными изображениями (palettized) - это как раз и есть малоцветные (4- и 8-битные цветные). Занятно, что эффект получился как раз нужный - в виде despeckle.

Я теперь уже вспоминаю, что, пожалуй, этот алгоритм как раз-таки и предназначен (его создателями) в первую очередь как раз для индексированных цветных изображений. Это уже я его использовал для 1-битных ЧБ.

А вот для "полноцветных" (я имею в виду те, где цвет может хранится напрямую в пикселе, а не в палетке) изображений, наверно, его не удастся применить (Greyscale и 24-бит цветное).

Данный алгоритм действительно медленный - из-за сортировок - ведь для каждого пикселя сортируются по номеру цвета его 8 соседей. Как его ускорить - не представляю.
Цитата:
Вот мой тестовый файл: http://www.onlinedisk.ru/image/176006/test.png

Хороший тест, спасибо.
Цитата:
Да, забыл сказать. Я использовал для компиляции TCC (Tiny C Compiler). Он работает только с чистым C, поэтому пришлось чуток подправить despec1.c. Прикладываю комплект моих файлов.

Ну, это мне, пожалуй, не пригодится. Подмигивание Про компилятор я спрашивал, потому что мне было интересно, какой язык - Си или Делфи - Вы используете.
Наверх
« Последняя редакция: 10.07.2009 :: 09:13:21 от monday2000 »  
WWW  
IP записан
 
nbl
Гуру
****
Вне Форума



Сообщений: 502
Кузбасс
Пол: male
Re: Хотелка по чистке обложек
Ответ #7 - 10.07.2009 :: 11:12:15
 
Всю дорогу на C и C++ писал, правда, сейчас больше обработкой текстов на AWK приходится заниматься. В основном Боландовскими компиляторами пользовался. TСС понравился тем, что мелкие исполняемые файлы создает и компилирует супер быстро. А вот с диагностикой ошибок при компиляции у него слабовато. Кстати, программы с FreeImage боландовским компилятором сходу не компилируются, у него в комплекте нет файла inttypes.h.

Я еще докрутил программку, навесил проверки на размер апертуры и цветовой формат файла, и теперь ей можно пользоваться практически. Взять ее с исходником можно здесь:

http://www.onlinedisk.ru/file/176106/
Наверх
 
 
IP записан
 
monday2000
Постоялец
**
Вне Форума


Всем привет!

Сообщений: 98
Пол: male
Re: Хотелка по чистке обложек
Ответ #8 - 10.07.2009 :: 13:24:00
 
nbl
Цитата:
Взять ее с исходником можно здесь:

Спасибо! Исходники эти я посмотрел. Да, мне действительно нужно в свой исходник вставить кое-какие проверки. Просто тогда я только начинал с FreeImage и многого ещё не знал.

PS Вот видите, всё оказалось совсем несложно (т.е. программирование графики).
Наверх
 
WWW  
IP записан
 
nbl
Гуру
****
Вне Форума



Сообщений: 502
Кузбасс
Пол: male
Re: Хотелка по чистке обложек
Ответ #9 - 02.09.2009 :: 09:32:46
 
Некоторое время назад меня посетил программерский зуд, в результате которого родилась на свет программка для обработки сканов обложек и приведения их к малоцветным. В архиве упакована сама программа с исходником, пример исходного файла, результат обработки и небольшое описание в файле readme.txt. Особой статистики по использованию программы у меня нет, поэтому пробуйте и пишите отзывы.

http://narod.ru/disk/12712533000/color256.rar.html
Наверх
 
 
IP записан
 
AAW
Патриарх
*****
Вне Форума


Старую детскую и НП литературу
ничем не заменить

Сообщений: 5418
Екатеринбург
Пол: male
Re: Хотелка по чистке обложек
Ответ #10 - 03.09.2009 :: 11:37:34
 
попробовал. Разницы в объеме пока не заметил, даже наоборот, может despecle.exe не хватает для счастья? Где его взять?
Наверх
 

Если не я за себя - то кто за меня? Но если я только за себя - то зачем я нужен? И если не сейчас - то когда? (с) Гиллель, предположительно
155803224  
IP записан
 
nbl
Гуру
****
Вне Форума



Сообщений: 502
Кузбасс
Пол: male
Re: Хотелка по чистке обложек
Ответ #11 - 03.09.2009 :: 12:13:29
 
AAW писал(а) 03.09.2009 :: 11:37:34:
попробовал. Разницы в объеме пока не заметил, даже наоборот, может despecle.exe не хватает для счастья? Где его взять?

Не понял в разнице объема чего? Программа собственно для уменьшения количества цветов в 256-цветном скане обложки. Пример из архива, по-моему, очень показателен.

despecle.exe можно взять в этой же ветке в посте #7.
Наверх
 
 
IP записан
 
AAW
Патриарх
*****
Вне Форума


Старую детскую и НП литературу
ничем не заменить

Сообщений: 5418
Екатеринбург
Пол: male
Re: Хотелка по чистке обложек
Ответ #12 - 03.09.2009 :: 13:11:25
 
в разнице объёма дежавю, полученной из обработанного рисунка через виртуальный принтер.
сенкс за ссылку.
Наверх
 

Если не я за себя - то кто за меня? Но если я только за себя - то зачем я нужен? И если не сейчас - то когда? (с) Гиллель, предположительно
155803224  
IP записан
 
nbl
Гуру
****
Вне Форума



Сообщений: 502
Кузбасс
Пол: male
Re: Хотелка по чистке обложек
Ответ #13 - 04.09.2009 :: 03:43:25
 
Сейчас я тоже провел такой эксперимент. Результирующий DjVu обработанного программой файла в два раза меньше, чем для необработанного. Но это не самое главное. Качество DjVu для обработанного файла неизмеримо лучше. Посмотрите приложенный DjVu. Явно видно, что первая страничка из необработанного png похабная, а вторая из обработанного - конфетка.

http://narod.ru/disk/12785628000/test.djvu.html
Наверх
 
 
IP записан
 
AAW
Патриарх
*****
Вне Форума


Старую детскую и НП литературу
ничем не заменить

Сообщений: 5418
Екатеринбург
Пол: male
Re: Хотелка по чистке обложек
Ответ #14 - 04.09.2009 :: 05:15:47
 
по мне так важнее размер, оба ваших примера читабельны.

а вот мой исходник:
http://www.onlinedisk.ru/image/210651/1252031248/
Получалось 83/74 кб исходный/обработанный.

Наверх
 

Если не я за себя - то кто за меня? Но если я только за себя - то зачем я нужен? И если не сейчас - то когда? (с) Гиллель, предположительно
155803224  
IP записан
 
nbl
Гуру
****
Вне Форума



Сообщений: 502
Кузбасс
Пол: male
Re: Хотелка по чистке обложек
Ответ #15 - 04.09.2009 :: 09:11:48
 
AAW писал(а) 04.09.2009 :: 05:15:47:
по мне так важнее размер, оба ваших примера читабельны.

О, вот тут мы расходимся! Для меня критерий "лишь бы было читабельно" не приемлем. Хочется качества ближе в максимальному.

Вашу обложу покрутил немного. Собственно, мыслей несколько.

1. Данная обложка не показательна. Есть полутона, например, на носе самолета, хоть и выполненные точками различного размера. Такие вещи сильно ухудшают сжимаемость.

2. Лично я бы такую обложку для книги кодировал бы в режиме "Фото". По крайней мере, сохранился бы более оригинальный вид. Я всегда и кодировал обложки в режиме "Фото" пока не приспособился делать их малоцветными.

3. Я взял Вашу обложку, отрезал края "с пальцами" и остальным мусором, убрал надписи ручкой, скопировав фрагменты фона из соседней клетки. Потом обработал своей программой, затем despecle, следом ручная чистка от мусора и дефектов бумаги. После кодирования принтером размер DjVu получился 114.5 кб. Программа vpd_enc дает чуть больший результат 126.5 кб. Кодирование необработанной картинки в режиме "фото" дало 524 кб, а кодирование обработанной картинки в режиме "фото" дало 525 кб.

Результат, важный лично для меня. Кодирование в малоцветном режиме в 4-5 раз эффективнее, чем кодирование скана обложки в режиме "фото". Лично для меня, важнее, что малоцветная обложка получается более эстетичной и, как отреставрированная. Однако, не любую обложку можно сделать малоцветной. Кроме того, лично мне, программа очень экономит время, и результирующие цвета на выходе практически близкие к реальным. Ранее при ручной работе у меня цвета искажались, и подобрать подходящий цвет у меня не получалось.


Наверх
 
 
IP записан
 
Валентин Бородей
Постоялец
**
Вне Форума



Сообщений: 167
Re: Хотелка по чистке обложек
Ответ #16 - 05.09.2009 :: 07:39:02
 
nbl писал(а) 04.09.2009 :: 09:11:48:
Есть полутона, например, на носе самолета, хоть и выполненные точками различного размера.

Про это давно Minor писал, что полутона точками - битонал.
Посмотрите, что получилось при переводе этого "полутона" в ч.б.
http://www.onlinedisk.ru/file/211459/
А уж если действительно на обложке присутствуют полутона, то тогда удобно пользоваться не виртуальным принтером, а DjVuSep, загоняя полутона на задний план, а передний делая подчищеным малоцветным. Это лучше тем, что можно менять качество полутонового изображения и размер файла, в отличие от жёстко заданных Scan и Foto.
Наверх
 
 
IP записан
 
monday2000
Постоялец
**
Вне Форума


Всем привет!

Сообщений: 98
Пол: male
Re: Хотелка по чистке обложек
Ответ #17 - 05.09.2009 :: 20:45:02
 
Цитата:
Я всегда и кодировал обложки в режиме "Фото" пока не приспособился делать их малоцветными.

Я тоже сторонник делать обложки в режиме "Фото" - а не малоцветными. Так получается живее и натуралистичнее (если это обложки книг, а не журналов в 256 цветов).

У обложек книг ведь есть не только цвет - но и фактура - "грубая ткань", "тиснёная кожа" и т.д. Малоцветные обложки это не передают.
Наверх
 
WWW  
IP записан
 
Валентин Бородей
Постоялец
**
Вне Форума



Сообщений: 167
Re: Хотелка по чистке обложек
Ответ #18 - 06.09.2009 :: 05:54:39
 
На вкус и цвет товарища нет. Улыбка
Не все книги имеют обложки с фактурой. Многие советские книги  имели фактуру только на коленкоровом или ледериновом корешке, а на сторонках обложки была бумага. Так и так приходится восстанавливать такие потёртые и драные обложки. А программа DjVuSep позволяет комбинировать такие малоцветные обложки с текстурным корешком, а то и делать всю обложку в текстуре, но с подбором качества, а н в единственно возможном режиме "фото". Примеры можно посмотреть здесь http://www.onlinedisk.ru/file/212008/
Наверх
 
 
IP записан
 
monday2000
Постоялец
**
Вне Форума


Всем привет!

Сообщений: 98
Пол: male
Re: Хотелка по чистке обложек
Ответ #19 - 07.09.2009 :: 08:33:37
 
Цитата:
Примеры можно посмотреть здесь http://www.onlinedisk.ru/file/212008/

Посмотрел. На мой вкус, всё равно как-то "не очень". Фото-обложки "живее".
Цитата:
Так и так приходится восстанавливать такие потёртые и драные обложки.

Да, это пока вообще ИМХО непаханная целина. Тут ещё прийдётся разрабатывать технологии.
Наверх
 
WWW  
IP записан
 
nbl
Гуру
****
Вне Форума



Сообщений: 502
Кузбасс
Пол: male
Re: Хотелка по чистке обложек
Ответ #20 - 07.09.2009 :: 08:46:33
 
В общем, пусть каждый сам решает нужна ему эта программа или нет. Для тех, кто все-таки предполагает ею пользоваться выкладываю новую версию. Теперь, если количество цветов в выходном файле получается меньше 17-ти, то программа сохраняет такой файл в формате с 16-цветной палитрой. Причем цвета в палитре будут отсортированы по частоте встречаемости цветов от большей к меньшей. Т.е. самый первый цвет в палитре будет самым встречаемым в картинке, и именно его, скорее всего, надо будет использовать, как фон для DjVuSep.

http://narod.ru/disk/12877704000/color256a.rar.html
Наверх
 
 
IP записан
 
Переключение на Главную Страницу Страниц: 1
Послать Тему Печать