Closed zvezdochiot closed 9 months ago
Hi @noobie-iv .
Сколько не всматриваюсь в FillZones, но так до сих пор понять не могу, как приспособить к нему дополнительный переключатель "Fill/Mask/BG"? Как внести "это" в Properties? Как пользовать знаю: в первом случае оставлю исходное поведение, в остальных буду использовать основную маску для отсечения заливки. Казалось бы простая фишка, но мозг клином встаёт. Это бы решало все "проблемы" с к-средних, я бы просто заливал бы больщую часть текста одним цветом, вместо того, чтобы лазить в "Mixed->PictureZones->Substract from k-means".
Не надо задавать мне такие большие и сложные вопросы, а то я буду плакать, и у меня будет истерика 🥲 Я все еще не прочитал не одной строчки кода. На сегодняшний день завершена техническая работа по копипасте Dewarp/Deskew кода в STD, с минимальной правкой параметров функций, где они были слишком уж разными. Итог: есть программа, которая компилируется, но не работает; причина - несовпадение интерфейсов вызова в STU/STEX. Теперь либо поможет случайный тык в несколько попыток, либо придется расчехлять отладчик, и пошагово сверять вызовы в STD/STEX. Короче, передница пройдена, началась задница.
Добавить зоны к деварпу, чтобы обводить только строки, которые надо учесть - следующая очевидная относительно простая задача, перед глобальной переделкой интерфейса. Там уже понадобится разбираться в коде зон. Если я туда вообще доберусь, то, возможно, смогу и в STEX что-то аналогичное сделать.
Hi @noobie-iv .
А саму функцию process
в src/filers/output/OutputGenerator.cpp
ты к новому функционалу привёл? В STEX эта функция одна и нацинается с геометрических преобразований, в то время как во всех остальных она расщепляется на две: processWithDewarp
и processWithoutDewarp
.
Метод processWithDewarping вычищен на стадии удаления деварпа. Остался только processWithoutDewarping. Если это та проблема, которая мешала работать с STU вместо STEX, то теперь ее нет, можно пробовать переезжать в STU. В коммите 2d575822 "Remove STU dewarp code" - версия, в которой деварп уже удален.
Взамен есть другая проблема: деварп, пришитый к новому месту, не работает. Это то место, где я предполагал застрять, и где застрял по плану. В STEX и STU используются разные классы преобразований, и где-то в процессе копипасты с заменой я неправильно преобразую одно в другое. Как разберусь, что там как должно быть в deskew/Task.cpp и deskew/CacheDrivenTask.cpp - процесс переноса закончится. А на сегодня в ветке dewarp_from_STEX лежит компилирующийся, но не работающий код: деварп не пашет сам, и неправильно передает геометрию дальше.
@noobie-iv say:
деварп, пришитый к новому месту, не работает.
Так надо бы наверное исходное изображение на деварпнутое подменить? В межэтапном перескоке (3->4)? Не? Больше по этому поводу никаких мыслей в голову не приходит.
PS: Ежели ты оставил только processWithoutDewarping
, то тем самым удалил трансформации. Разве не? В STEX process
начинается именно с геометрических трансформаций.
Там даже режим "без трансформаций" не работает, неправильно передает дальше размеры страницы. Потому что исходный STU deskew-код удален, а взамен вставлен код из STEX. А в них разная обработка этих картинок, из-за чего, собственно, и глюки. Вот превьюшки правильные, а главная картинка-нет, хотя вроде бы все копипащенное. Какое-то время я потеряю на выяснение, что надо поправить, чтобы все заработало. Надеюсь, что не год. 😄
Не актуально. См. #18 .
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.