Smooth data with correlation

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 !

 采纳的回答

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!

更多回答(1 个)

Gregoose
Gregoose 2019-9-30

0 个投票

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

类别

帮助中心File Exchange 中查找有关 Image Processing Toolbox 的更多信息

产品

版本

R2017a

标签

Community Treasure Hunt

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

Start Hunting!

Translated by