我需要生成隨機分葉狀輪廓如如何做到這一點下面思路生成隨機分葉狀肺結節的輪廓
任何想法或算法? 我將要使用的軟件是MATLAB,但我有沒有問題,如果你發佈在其他語言中也解決方案...
PS我只需要畫出類似於上述的隨機輪廓......
我需要生成隨機分葉狀輪廓如如何做到這一點下面思路生成隨機分葉狀肺結節的輪廓
任何想法或算法? 我將要使用的軟件是MATLAB,但我有沒有問題,如果你發佈在其他語言中也解決方案...
PS我只需要畫出類似於上述的隨機輪廓......
這個怎麼樣?
degree = 5;
numPoints = 1000;
blobWidth = 5;
theta = 0:(2*pi)/(numPoints-1):2*pi;
coeffs = rand(degree,1);
rho = zeros(size(theta));
for i = 1:degree
rho = rho + coeffs(i)*sin(i*theta);
end
phase = rand*2*pi;
[x,y] = pol2cart(theta+phase, rho+blobWidth);
plot(x,y)
axis equal
set(gca,'Visible','off')
您可以通過修改degree
控制
wiggliness
lobulacrity。我認爲5給出了一些關於
wiggly
lobotcious作爲你的例子。
這很有趣 - 希望它有幫助!
這是一個想法。
step = 0.1;
r_min = 0.5;
r_max = 1.0;
ir = 35;
tt = linspace(0, 2*pi, ir);
t = linspace(0, 2*pi, 5*ir);
rr = r_min + (r_max - r_min)*rand(1, length(tt));
rr(end) = rr(1);
r = interp1(tt, rr, t, 'spline');
// add some noise of magnitude N
N = 0.1;
noise = -N + 2*N*rand(1, length(r));
noise(1:2:end) = 0.0;
r = r + noise;
//
hp = polar(t, r);
set(hp, 'LineWidth', 2)
h = findall(gca,'type','line');
h(h == hp) = [];
delete(h);
t = findall(gca,'type','text');
delete(t);
delete(findall(gca, 'FaceColor', [1 1 1]))
典型輸出看起來像這樣(IR = 10,無噪音)
或該(IR = 35,具有和不具有噪聲)
投票重新開放。爲格式提供足夠短的答案很簡單,儘管可能會有多種變化,但只有一個基本答案。答案是狹隘的,這個問題可以在幾段中回答。 –
發佈的兩個答案都令人滿意......我還編輯了題目以使問題更加具體化...... – obelix