让我们定义偏见字段:
强度不均匀度由区间[1-α,1 +α]中的偏置场的值的范围表示,其中α> 1。对于每个α(即α= 0.1),我们生成了一个偏差场,其值为[1 - α,1 +α]
此外,我为偏置图像创建添加了更多条件,即偏置图像的值缓慢变化。
我想根据上面的定义(有条件和无条件)从给定的α值创建二维偏差场。你能帮我用Matlab实现吗?
function bias_Image=create_bias_image(nrow,ncol,alpha)
%% Code here
%% nrow and ncol are size of bias_Image
end
目前,这是我在下面的代码中尝试过的。但是,我不知道我的代码是否正确。
function bias_Image=create_bias_image(nrow,ncol,alpha)
%% Code here
%% nrow and ncol are size of bias_Image
bias_Image=zeros(nrow,ncol);
for i=1:nrow
for j=1:ncol
%% create a random number in range [1 − alpha,1+ alpha]
%% Without condition
bias_Image(i,j)= (1- alpha) + 2*alpha.*rand(1,1);
%% With condition slowly varying-how to do it
end
end
end
答案 0 :(得分:0)
根据你的定义。我们可以轻松创建一维线性值并将其组合在二维中以创建偏差图像。好方法是
x=1:0.01:256;
y=1:0.01:256;
[X,Y] = meshgrid(x,y);
bias=[X.*Y];
x = bias(:);
alpha=0.5;
up_range=1+alpha;
down_range=1-alpha;
bias_X = (x - min(x)) * (up_range - down_range) / (max(x) - min(x)) + down_range;
bias_scalar=reshape(bias_X,[n m]);