Генерация объектов в Matlab

0

Я хочу создать некоторые случайные объекты в Matlab. Объектами, которые я хочу создать, являются в основном круглые и синусоидальные волны с определенной амплитудой, шириной и радиусом. Есть ли какая-либо команда и/или функция, которые могут это сделать? Расположение кругов и волн случайное.

Например, ниже вы можете увидеть два примера объектов:

Изображение 174551

Теги:
image-processing

2 ответа

2
Лучший ответ

Это то, что вам нужно, - извините, если я неправильно понял вопрос, но я создаю случайное число точек, в которые можно сделать круги или синусоиды.

кружки:

N=randi(20);
x=rand(N,2);
plot(x(:,1),x(:,2),'.','MarkerSize',30)

И синусоиды:

amp=.1;
freq=10;
N=randi(20);
x=rand(N,2);
for i=1:N
    plot(x(i,1)-1:.01:x(i,1)+1,x(i,2)+amp*sin(freq*(x(i,1)-1:.01:x(i,1)+1)),'LineWidth',10)
    hold on
end
hold off

Надеюсь, код не требует пояснений, но не стесняйтесь просить разъяснений.

  • 0
    Хороший ответ, особенно синусоиды! Тем не менее, я подозреваю, что он хочет изображения матрицы, хотя это не ясно. Если это необходимо, вы можете сделать изображения из осей getframe с помощью getframe + frame2im2 .
  • 0
    Спасибо Дэвид. Как я могу контролировать радиус круга в первом коде?
Показать ещё 3 комментария
2

Я не уверен в синусоидальных волнах, но, что касается кругов, вы должны просто выбрать случайные точки на изображении и использовать функцию imdilate. Вам также понадобится круговой структурный элемент для этой морфологической операции. Этого можно добиться легко, используя команду strel с опцией 'disk'; требуемый радиус может быть передан в качестве параметра здесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню