-2

i am trying to generate/simulate a set of synthetic/ simulated data set to generate a synthetic blood flow image in matlab. but i dont know how or where to starts from...

i know i should use the mesh function but how do i make it so it could be in time dimension?

I will be very thankful if anybody could help/ guide me through. I want to generate a data set of size 25x25x10x4. Which is X x Y x t x V. The image should be something similar to this:

this is an image of supposedly vessel in the brain

or like this:

enter image description here

thank you in advance!

4

2 回答 2

3

数据集#1:

使用您最喜欢的线表示(极坐标、线性等)并为您的线随机生成参数。例如,如果您选择y = mx + c,随机生成mc。现在你已经定义了你的线,使用这个 SO 方法在图像上绘制它。

在此处输入图像描述

数据集#2:

它们看起来像二维高斯人。按以下方式使用mvnpdf

[X Y] = meshgrid(x_range,y_range);
Z = reshape(  mvnpdf([X(:) Y(:)],MU,SIGMA)   ,size(X));
imagesc(Z);

使用一些随机生成的MU和位于 和 中的SIGMA等。例如和MUx_rangey_rangex_range = -3:0.1:3;y_range = x_range;

亩=

0.9575    0.9649

适马 =

1.2647    0.3760
0.3760    1.0938

在此处输入图像描述

于 2012-09-24T18:51:02.317 回答
1

只是为了补充@Jacob 的非常具体的答案,您需要一个 4DMxNxTxV矩阵。在此,根据帖子,MxN是每个图像的维度,T是时间维度,V 是每个时间帧的通道数或样本数(RGB 为 3,任何光谱图像为 >3)。

  • 对于每个 T,生成 V 图像。
  • 使用数据集 #1 和数据集 #2 的随机参数模拟 V 图像。
  • 将所有内容放在每个数据集的一个 4D 矩阵中(即使用双精度表示或连接)

根据@Jacob 的建议,替换rand()为以下内容,即生成所需结构类型的随机样本的函数:generate_image()

M = 25; N = 25;
T = 10; V = 4;

DataSet1 = zeros(M,N,T,V);
DataSet2 = zeros(M,N,T,V);

for t = 1:T
   for v = 1:V
        DataSet1(:,:,t,v) = randn(M,N);
        DataSet2(:,:,t,v) = randn(M,N);
    end
end
于 2012-09-24T19:41:31.633 回答