7

助けが必要です。葉についてのプロジェクトを作成する必要があります。

MATLABで作りたいです。

私の入力は1枚の葉(白い背景)の画像であり、葉について2つのことを知る必要があります。

1)ローブの葉(各ローブの葉のピクセル)を見つけます。

  • あなたがそれを調べることができるテーブルまたは作業スペースに葉を置きます。

  • 識別しようとしている葉を見てください。葉に指があるように見える場合、これらは葉と見なされます。葉には2つから多くの葉があります。

  • 葉の下側の静脈を見て、羽状の葉と手のひらの葉を区別します。葉脈がすべて葉の付け根の同じ場所から来ている場合、それは手のひらに葉状になっていると見なされます。それらが1つの中心線から葉のさまざまな場所に形成される場合、葉は羽状に葉状になります。

  • 葉の辞書を使用して、葉の種類を識別します。

ここに画像の説明を入力してください

2)葉の隆起のおよその数を見つけます:

言い換えれば、各葉の「腫れた点」を見つけます。 ここに画像の説明を入力してください

これらは葉の例です:

ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください

4

2 に答える 2

8

here でいくつかの葉の例を見つけました。

これが問題を解決するための私の試みです。私が見つけた画像では、背景は完全に黒です。画像がそうでない場合は、大津のしきい値法を使用する必要があります。

あなたのイメージによると、葉は3種類しかないと思いました: ここに画像の説明を入力

アイデアは、ブロブ分析を行うことです。葉を分離するために、開口部のモルフォロジー操作を使用します。開口部の後にブロブが1つしかない場合は、複合ではないと思います. 葉が複葉でない場合は、塊の固さを分析します。十分に固体でないということは、それらが裂けていることを意味します。

ここではいくつかの例を示します。

ここに画像の説明を入力 ここに画像の説明を入力 ここに画像の説明を入力 ここに画像の説明を入力

function IdentifyLeaf(dirName,fileName)

    figure();
    im = imread(fullfile(dirName,fileName));
    subplot(1,3,1); imshow(im);

%   thresh = graythresh( im(:,:,2));
    imBw = im(:,:,2) > 0;
    subplot(1,3,2);imshow(imBw);

    radiusOfStrel = round( size(im,1)/20 ) ;
    imBwOpened = imopen(imBw,strel('disk',radiusOfStrel));

    subplot(1,3,3);imshow(imBwOpened);

    rpOpened = regionprops(imBwOpened,'Area');
    if numel(rpOpened)>1
        title('Pinnately Compound');
    else
        rp = regionprops(imBw,'Area','Solidity');
        %Leave only largest blob
        area = [rp.Area];
        [~,maxIndex] = max(area);
        rp = rp(maxIndex);

        if rp.Solidity < 0.9
            title('Pinnately Lobed');
        else
            title('Pinnately Veined');
        end
    end
end
于 2012-10-06T12:54:36.307 に答える
3

この問題は、「壁の右手」アルゴリズムを使用して葉の周囲をベクトルでスキャンすることにより、2d から 1d に変換することで解決できます。

そのデータから、対称性の支配的な軸を見つけることができると思います(たとえば、線を当てはめます)。周囲の距離はその軸から計算され、しきい値とフィルタリングを使用して局所的な最大値と最小値を見つけて、葉/指の数を明らかにすることができます...距離のヒストグラムは、羽状葉と羽状複合葉を区別できます.

(2 つの極端な点から) 周囲の曲率をチェックする別の単一のメトリックは、http://en.wikipedia.org/wiki/Sinuosityです。

残念ながら、静脈の認識はまったく別のトピックです。

于 2012-10-06T12:47:15.210 に答える