2

グレースケール画像の 2 つのエッジ間に線を引き、その長さを推定したいと思います。大腿骨頭の直径を推定する必要があります。houghlines を使用して最終的にプロット (以下を参照) を試みましたが、コードを正しく取得できません。私はmatlabが初めてなので、おそらくその理由です。ヒントをいただければ幸いです。

for img = imread(sample);
figure,imshow(img)
hold on
p1 = [10,100];
p2 = [100,20];
plot([p1(2),p2(2)],[p1(1),p2(1)],'Color','r','LineWidth',2);
hold off;
pause;
end
4

2 に答える 2

0

ポイントの獲得方法がよくわかりません。それは些細なことではないとしましょう。

同様の問題について、私のユーザーは常にポイントを手動でマークできることを望んでいます (彼らはコンピューター ビジョンを少し信頼していません)。コードは次のようになります。

pos = ginput(2);
l = line(pos(:,1),pos(:,2),'Color','r','Marker','o'); % just for visualization
distance = norm(pos(1,:)-pos(2,:));
于 2012-11-15T10:29:32.550 に答える
0

線の始点と終点が分かっている場合

p1 = [ 10 100];
p2 = [100  20];

ピタゴラスの定理から、ピクセル単位の距離は次のようになります。

dist = sqrt( (p2-p1) * (p2-p1).' );

次に、これにピクセルが表すミリメートル数を掛けて、実際の距離を取得します。

ポイントがわからないが、手動で描画する場合(おそらくコンピュータービジョンによって支援されますが、完全に依存することはありません:)、bdecafの回答を参照してください。

于 2012-11-15T10:05:31.993 に答える