0

骸骨のイメージがあります。次のリンクに示されているように。

http://www.flickr.com/photos/92388309@N03/8397759970/in/photostream/

分岐点とエンドポイントを検出し、画像にラベルを付けました。現在、各ブランチに円を描いています。次のコードを使用して、各ブランチに円を描いています。

mn=bwmorph(y,'branchpoints');
[row column] = find(mn);
branchPts    = [row column];
endImg    = bwmorph(y, 'endpoints');
[row column] = find(endImg);
endPts       = [row column];
figure;imshow(y);
hold on ; 
plot(branchPts(:,2),branchPts(:,1),'rx');
hold on; plot(endPts(:,2),endPts(:,1),'*');
% Labeling the Branches
branches = (y & ~mn); % set branch points to zero
figure; imshow(branches);
branchesLabeled = bwlabel( branches); % label connected components
vislabels(branchesLabeled)
% Calculation of Length of Branches and Circular Neighbourhood Method for
% for detection of normal and abnormal branches.
sts = regionprops( branchesLabeled,'Area', 'Perimeter','MajorAxisLength','Centroid' );
% extract properties
% Loop for circles
for i=1:size(sts)
r= sts(i).MajorAxisLength/2 ; %desired radius
centerx = sts(i).Centroid(1);  
centery = sts(i).Centroid(2);
th = 0:pi/50:2*pi;
xunit = r * cos(th) + centerx;
yunit = r * sin(th) + centery;
figure; imshow(branchesLabeled);hold on;h = plot(xunit, yunit);
end 

このコードにはいくつかの問題があります。

  1. 円は骨格の中心線上に描かれています(枝ではなく骨格の中心線です) http://www.flickr.com/photos/92388309@N03/8402753918/in/photostream

  2. このコードは、いくつかの画像を提供しています (ブランチごとに 1 つ)。同じ画像の各ブランチに円が必要です。

円形近傍法を使用して分岐の程度を見つけたい (各分岐に円を描画し、円内の背景ピクセルの数を確認することによって)

4

1 に答える 1

0

sts質問 1 では、構造内のすべての円を描いています。でブランチの場所だけを取得する方法を理解する必要がありますsts

figure質問 2 では、ループの外で画像を呼び出して描画する必要があります。次に、ループを呼び出しplotて各円を描画します。このようなもの:

figure
imshow(branchesLabeled)
hold on
for i=1:size(sts)
    % your other code here...
    plot(xunit, yunit);
end
于 2013-01-21T18:46:35.903 に答える