私は解決できないよく知られた問題に直面しています。ルートの写真があります ( http://cl.ly/image/2W3C0a3X0a3Y )。この写真から、最長の根の長さ (1 番目の問題)、大きな根と小さな根の割合 (2 番目の問題である方向としての直径) を % で知りたいと思います。これは多かれ少なかれ研究の目的であるため、細かい根と大きな根を区別できることが重要です(異なる種間で比較された部分)。最後に、測定された最長ルートに沿って線を引き、すべてが正しく測定されているかどうかを確認したいと思います。
最長のルートの長さについては、regionprops() を使用しようとしましたが、これは最適ではありません。これは、これが正しい場合、基本的な形状として楕円形を想定するためです。ただし、実際にサポートが必要になる可能性のあるものは次のとおりです。
最長の根の長さを取得するにはどうすればよいですか (開始点は、最長の根が最大の直径を持つ主根を離れる場所でなければなりません)。細い根と太い根の見分け方と、その部分をとることはできますか?(コイン、画像の丸いものは参考です) 長さや直径などの属性を絵に描いてもいいですか?
楕円などの重心を描く方法を見つけましたが、提案された値でそれを行う方法がわかりません。
これが二重投稿ではないことを願っています。また、この質問がこのように他の場所に存在しないことを願っています。そうであれば、申し訳ありません。
このフォーラムの人々に感謝したいと思います。あなたは素晴らしい仕事をしてくれました。質問がある人は皆、あなたがここにいてくれて幸運です。
助けてくれてありがとう、フィリップ
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% 編集
提案されたソリューションに従いました。これまでのコードは次のとおりです。
clc
clear all
close all
img=imread('root_test.jpg');
labTransformation = makecform('srgb2lab');
labI = applycform(img,labTransformation);
%seperate l,a,b
l = labI(:,:,1);
a = labI(:,:,2);
b = labI(:,:,3);
level = graythresh(l);
bw = im2bw(l);
bw = ~bw;
bw = bwareaopen(bw, 200);
se = strel('disk', 5);
bw2=imdilate(bw, se);
bw2 = imfill(bw2, 'holes');
bw3 =bwmorph(bw2, 'thin', 5);
bw3=double(bw3);
I4 = bwmorph(bw3, 'skel', 200);
%se = strel('disk', 10);%this step is for better visibility of the line
%bw4=imdilate(I4, se);
D = bwdist(I4);
これにより、スケルトンの写真が表示されます-これは大きな進歩です、ありがとう!!! 私は距離を計算しなければならない時点で少し外れています。すべての小さなルートからメイン ルートまでの距離を計算する必要があることを MatLab に説明するにはどうすればよいですか (これを定義する方法は?)。このためには、最初に直径を処理する必要がありますよね?
距離/長さの問題を達成する方法について、どちらかのヒントを教えていただけませんか?
ここまで大変お世話になりました!
フィリップ
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EDIT2
わかりました、シングル ルート パーツを分離することができました。これはあなたの編集が提案したものではありませんが、少なくとも何かです。私はすべての根の合計の長さも持っています - それほど悪くはありません. しかし、(私が思うに)非常に簡単なステップバイステップの説明があっても、私はそのような木を見たことがありません. 目に見えないポイントを選択する必要があるポイントで停止しました-残りは私には高すぎます。これ以上時間を無駄にしたくありません。あなたが私に与えてくれた助けにとても感謝しています。しかし、私はこれを達成するにはMatLabの愚かすぎると思います:)ありがとう!このように続けてください、それは本当に役に立ちます。
フィリップ