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 !

 Accepted Answer

KALYAN ACHARJYA
KALYAN ACHARJYA on 25 Sep 2019
Edited: KALYAN ACHARJYA on 25 Sep 2019
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!

More Answers (1)

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

Categories

Products

Release

R2017a

Asked:

on 25 Sep 2019

Answered:

on 30 Sep 2019

Community Treasure Hunt

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

Start Hunting!