Расширить изображение на основе распределения

У меня есть изображение, которое показывает некоторые случайные заполненные круги (например, см. Здесь). Я хочу изменить эти круги, чтобы сделать несколько неправильных форм. Другими словами, я хочу определить распределение, с помощью которого я могу расширить круги. Ясно, что полученные новые объекты больше не будут кружками, потому что сгенерированные объекты расширяются на основе распределения, которое является переменным; увидеть этот новый деформированный круг.

Мне было интересно, есть ли способ, который может сделать это? В своей первой попытке я попытался использовать расширение изображения в Matlab, но я понятия не имею, как следует использовать "распространение" расширения.

IM2 = imdilate(IM,SE)

1 ответ

Если вы хотите сделать это с помощью дилатации, решение может быть:

  1. Допустим, я ваш оригинальный образ
  2. ImResult = Same (Im)
  3. ImClone = клон (Im)
  4. Случайно удалить пиксели в ImClone. Количество пикселей для удаления может быть в процентах, или как вы предпочитаете
  5. ImDlate = Dilit (ImClone), с структурирующим элементом размера N
  6. Результат = Максимум (Result, ImDlate)
  7. Если вам нужен другой размер деформаций, то вы переходите от шага 3 к 6 с различными размерами структурирующего элемента.

Но вы хотите больше упругой деформации. Вы должны взглянуть на деформацию свободной формы (FFD).

Другие вопросы по тегам