2010-05-06 2 views
2

Я хочу создать фон неровного цвета, а затем сгенерировать некоторые тестовые данные, используя Matlab. Я был неясно, когда я задавал этот вопрос раньше. Таким образом, для этого простого примераСоздание данных на фоне unlevel

for i = 1:10 
for j = 1:10 
f(i,j)=X.^2 + Y.^2 
end 
end 

, где X и Y уже определены, он отображает его на ровной поверхности. Я не хочу искажать сама функцию, но я хочу, чтобы поверхность, на которой она перешла, была невыразительной, в какой-то степени изменилась или что-то в этом роде. Надеюсь, это немного яснее.

+1

В левой нижней части вашего вопроса серый слово называется 'edit'. Нажмите на нее, и вы можете отредактировать свой вопрос. – Jonas

+0

Пожалуйста, воздержитесь от публикации одного и того же вопроса несколько раз. Если вам нужно уточнить свой предыдущий вопрос, нажмите ссылку «Изменить», чтобы изменить его. Если вы не видите ссылку «изменить» в вопросе, возможно, это связано с тем, что у вас есть 2 разных аккаунта (http://stackoverflow.com/users). Попробуйте получить идентификатор OpenID и объедините эти учетные записи, чтобы вам не приходилось дублировать вопросы, на которые нахмурились. – gnovice

ответ

1

Вы создаете фон так же, как вы создаете сигнал, или переднем плане: используя функцию, которая применяет значение к каждому пикселю. Затем вы добавляете передний план на задний план, и все готово.

Возможно, функция NDGRID будет полезна для вас.

Например, вы можете написать:

%# create x and y coordinates for every pixel in the image 
[xx,yy] = ndgrid(1:10,1:10); 

%# create foreground 
foreground = xx.^2 + yy.^2; 

%# create an angled background, where y = -10*x; 
background = -xx*10; 

%# show all 
figure 
subplot(1,3,1),imshow(foreground,[]) 
subplot(1,3,2),imshow(background,[]) 
subplot(1,3,3),imshow(foreground+background,[]) 
Смежные вопросы