Ограничить толщину линии

  • Автор темы Автор темы Skvoznyak
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Skvoznyak

Топикстартер
15 лет на форуме
Сообщения
5 500
Реакции
2 168
Задача - есть bitmap, линии толщиной от 1 пикселя до допустим 20 пикселей.
Можно как-то исхитриться, чтобы самые тонкие линии утолщить до 2 пикселей, а остальные не изменять? filter->other->minimum обводит все
custom filter мне что-то не сообразить

(во избежании излишних теоретизирований прикрепляю тестовый образец - нижний слой оригинал, верхний - что надо получить)
 

Вложения

Интересная задачка.
Сходу приходит на ум следующий алгоритм - выделить все линии - преобразовать в канал, продублировать, применить медиану 1 пиксел, загрузить выделение, вычесть из первого канала.
Получим выделение на все объекты не больше 1 пиксела. Бинго!
 
+ края остальных объектов (или я что-то неправильно делаю). кусок толстой линии зацепило
 
Последнее редактирование:
А как иначе?
Разве что попробовать поиграться вместо медианы каким нибудь диспеклом или царапинами
 
да у меня тоже особо идей нет, разве что написать плагин-фильтр. но не настолько надо )
 
На самом деле задачу даже четко алгоритмизировать нельзя.
Как жестко определить линию, толщиной в пиксел? Только как совокупность пикселов у каждого из которых максимум два соседа. В этом случае в качестве фильтра должна работать медиана. Если медиана не работает, то значит исходная предпосылка ложная и мы в тупике. :-(
 
  • Спасибо
Реакции: Skvoznyak
применить медиану 1 пиксел, загрузить выделение, вычесть из первого канала.
Вместо медианы: maximum на 1 пикс а потом всему что осталось minimum на 1 пикс. Получаем маску - все толще 1 пикс.
Но сочленения скорее всего тоже будет зацеплять.
 
Да вот фиг там.
Максимум 1 пиксел, в отличие от аналогичной медианы, убирает и 2 пиксельные линии.
 
Вполне вменяемо и через медиану получается, сейчас проверил.
Было:
upload_2014-8-12_23-36-3.png

Стало:
upload_2014-8-12_23-35-13.png
 
  • Спасибо
Реакции: Skvoznyak
Статус
Закрыто для дальнейших ответов.