Расширить изображение на основе распределения
У меня есть изображение, которое показывает некоторые случайные заполненные круги (например, см. Здесь). Я хочу изменить эти круги, чтобы сделать несколько неправильных форм. Другими словами, я хочу определить распределение, с помощью которого я могу расширить круги. Ясно, что полученные новые объекты больше не будут кружками, потому что сгенерированные объекты расширяются на основе распределения, которое является переменным; увидеть этот новый деформированный круг.
Мне было интересно, есть ли способ, который может сделать это? В своей первой попытке я попытался использовать расширение изображения в Matlab, но я понятия не имею, как следует использовать "распространение" расширения.
IM2 = imdilate(IM,SE)
1 ответ
Если вы хотите сделать это с помощью дилатации, решение может быть:
- Допустим, я ваш оригинальный образ
- ImResult = Same (Im)
- ImClone = клон (Im)
- Случайно удалить пиксели в ImClone. Количество пикселей для удаления может быть в процентах, или как вы предпочитаете
- ImDlate = Dilit (ImClone), с структурирующим элементом размера N
- Результат = Максимум (Result, ImDlate)
- Если вам нужен другой размер деформаций, то вы переходите от шага 3 к 6 с различными размерами структурирующего элемента.
Но вы хотите больше упругой деформации. Вы должны взглянуть на деформацию свободной формы (FFD).