Я хочу создать некоторые случайные объекты в Matlab. Объектами, которые я хочу создать, являются в основном круглые и синусоидальные волны с определенной амплитудой, шириной и радиусом. Есть ли какая-либо команда и/или функция, которые могут это сделать? Расположение кругов и волн случайное.
Например, ниже вы можете увидеть два примера объектов:
Это то, что вам нужно, - извините, если я неправильно понял вопрос, но я создаю случайное число точек, в которые можно сделать круги или синусоиды.
кружки:
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
Надеюсь, код не требует пояснений, но не стесняйтесь просить разъяснений.
Я не уверен в синусоидальных волнах, но, что касается кругов, вы должны просто выбрать случайные точки на изображении и использовать функцию imdilate
. Вам также понадобится круговой структурный элемент для этой морфологической операции. Этого можно добиться легко, используя команду strel
с опцией 'disk'
; требуемый радиус может быть передан в качестве параметра здесь.
getframe
с помощьюgetframe
+frame2im2
.