Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Palette zones? #5

Closed
zvezdochiot opened this issue Oct 13, 2023 · 7 comments
Closed

Feature: Palette zones? #5

zvezdochiot opened this issue Oct 13, 2023 · 7 comments
Assignees
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@zvezdochiot
Copy link
Member

zvezdochiot commented Oct 13, 2023

Hi @noobie-iv .

It is required to create a hybrid of Picture and Fill zones: "Palette zones" tab, to manually assign a color for painting a black mask (as k-means does). From Picture zones you only need a substrate (color), from Fill zones you need a choice of color (black by default) and everything else. How can this be combined with k-means? I will resolve this issue.

PS: It is desirable to have a mechanism for counting unique colors in Palette zones (in the simplest case - 1 non-black color, in the most complex - the number of non-black colors is equal to the number of zones).

PS2: To display zones, it is advisable to do mixing: ({color image}+{zone color})/2. The simplest way is to generate a raster with only zones from the palette zones (mask), and then average it with the substrate. This mask will also be used when coloring black outlines.

stex-palette_zones

@zvezdochiot zvezdochiot self-assigned this Oct 13, 2023
@zvezdochiot zvezdochiot added enhancement New feature or request help wanted Extra attention is needed labels Oct 13, 2023
@zvezdochiot
Copy link
Member Author

zvezdochiot commented Nov 20, 2023

Hi @noobie-iv .

Сколько не всматриваюсь в FillZones, но так до сих пор понять не могу, как приспособить к нему дополнительный переключатель "Fill/Mask/BG"? Как внести "это" в Properties? Как пользовать знаю: в первом случае оставлю исходное поведение, в остальных буду использовать основную маску для отсечения заливки. Казалось бы простая фишка, но мозг клином встаёт. Это бы решало все "проблемы" с к-средних, я бы просто заливал бы больщую часть текста одним цветом, вместо того, чтобы лазить в "Mixed->PictureZones->Substract from k-means".

@noobie-iv
Copy link
Member

Не надо задавать мне такие большие и сложные вопросы, а то я буду плакать, и у меня будет истерика 🥲
Я все еще не прочитал не одной строчки кода. На сегодняшний день завершена техническая работа по копипасте Dewarp/Deskew кода в STD, с минимальной правкой параметров функций, где они были слишком уж разными. Итог: есть программа, которая компилируется, но не работает; причина - несовпадение интерфейсов вызова в STU/STEX. Теперь либо поможет случайный тык в несколько попыток, либо придется расчехлять отладчик, и пошагово сверять вызовы в STD/STEX. Короче, передница пройдена, началась задница.

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

@zvezdochiot
Copy link
Member Author

zvezdochiot commented Nov 21, 2023

Hi @noobie-iv .

А саму функцию process в src/filers/output/OutputGenerator.cpp ты к новому функционалу привёл? В STEX эта функция одна и нацинается с геометрических преобразований, в то время как во всех остальных она расщепляется на две: processWithDewarp и processWithoutDewarp.

@noobie-iv
Copy link
Member

Метод processWithDewarping вычищен на стадии удаления деварпа. Остался только processWithoutDewarping. Если это та проблема, которая мешала работать с STU вместо STEX, то теперь ее нет, можно пробовать переезжать в STU. В коммите 2d575822 "Remove STU dewarp code" - версия, в которой деварп уже удален.

Взамен есть другая проблема: деварп, пришитый к новому месту, не работает. Это то место, где я предполагал застрять, и где застрял по плану. В STEX и STU используются разные классы преобразований, и где-то в процессе копипасты с заменой я неправильно преобразую одно в другое. Как разберусь, что там как должно быть в deskew/Task.cpp и deskew/CacheDrivenTask.cpp - процесс переноса закончится. А на сегодня в ветке dewarp_from_STEX лежит компилирующийся, но не работающий код: деварп не пашет сам, и неправильно передает геометрию дальше.

@zvezdochiot
Copy link
Member Author

zvezdochiot commented Nov 21, 2023

@noobie-iv say:

деварп, пришитый к новому месту, не работает.

Так надо бы наверное исходное изображение на деварпнутое подменить? В межэтапном перескоке (3->4)? Не?
Больше по этому поводу никаких мыслей в голову не приходит.

PS: Ежели ты оставил только processWithoutDewarping, то тем самым удалил трансформации. Разве не? В STEX process начинается именно с геометрических трансформаций.

@noobie-iv
Copy link
Member

Там даже режим "без трансформаций" не работает, неправильно передает дальше размеры страницы. Потому что исходный STU deskew-код удален, а взамен вставлен код из STEX. А в них разная обработка этих картинок, из-за чего, собственно, и глюки. Вот превьюшки правильные, а главная картинка-нет, хотя вроде бы все копипащенное. Какое-то время я потеряю на выяснение, что надо поправить, чтобы все заработало. Надеюсь, что не год. 😄

@zvezdochiot
Copy link
Member Author

Не актуально. См. #18 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants