Hello all,
I need to create a file containing random numbers (let's say on a 64x64 grid) and then smooth the data to create a correlated function with an arbitrary correlation distance L. I basically need to create something like this :
Random_correlated_data.png
The random grid is easily created using
random_grid = (b-a).*rand(64,64) + a;
[a,b] being the interval in which the random numbers are generated.
  • I have trouble finding a way to smooth the data that creates bumps on the surface that have the desired size;
  • If i also could control the maximum local slope that'd be top tier.
Does anyone know a way to do this ? Thanks !

 Akzeptierte Antwort

KALYAN ACHARJYA
KALYAN ACHARJYA am 25 Sep. 2019
Bearbeitet: KALYAN ACHARJYA am 25 Sep. 2019

0 Stimmen

data_image=randi(255,64,64);
% Smooth the image as per your requirements
% or Bluring the image see the fspecial documentation
h=fspecial('average',3);
data_result=imfilter(data_image,h);
image(data_result);
colorMap=jet(256);
colormap(colorMap);
colorbar;
Detail fspecial here
4567.png
Similar question answer see here (@Image Analyst)
Also check with
h=fspecial('motion',some_value,some_value);
Hope it helps!

Weitere Antworten (1)

Gregoose
Gregoose am 30 Sep. 2019

0 Stimmen

Thanks for your answer, I'll now have to play with the kernel size/type to fit my needs, as well as the edges !

Kategorien

Produkte

Version

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by