2010-12-01 8 views
0

私はカラーオブジェクトに基づいて画像のセグメンテーションを行います。この情報(クリック値)を別のオブジェクトで使用するには、オブジェクトのユーザークリック値を取得する必要がありますプロセス。どのように私はmatlabでこの値を得ることができます。誰でも私を喜ばせることができます。画像内の任意のオブジェクトをクリックして情報を取得する

よろしく

答えて

2

ユーザーがプロットや画像をクリックすると、彼らがクリックされた座標を取得したい場合は、ginputを使用することができます。たとえば、

[x,y] = ginput(1); 

のように、1クリックの座標が表示されます。その後、独自のロジックを使用して、対応するオブジェクトを特定することができます。

これはあなたがしようとしていない場合は、より明確に説明する必要があります。

+0

は、私は、ユーザーが画像(画像内の任意のオブジェクト)をクリックすると、彼らはクリック座標を取得したいはい...返信ありがとうございました...私は、この座標を取得する場合、私はしようとすることができますginput関数を適用する...ありがとうございます – zenab

+0

この間違い申し訳ありません...私は私の質問を続けます...私はオブジェクトの座標を取得することができますこのオブジェクトを1つのイメージとして扱うことができますか? – zenab

+0

説明するために質問を編集しました。 –

2

は、私は、これは、あなたの質問に答えるかどうかわからないんだけど、グラフオブジェクト(すなわちlinespatchesimagesなど)は、ポインタがオブジェクト上にあるときにマウスボタンを押したときに実行されるButtonDownFcnコールバックを持っています。

は、ここで選択したオブジェクトに関する情報を取得するためにあなたがButtonDownFcnコールバックを使用できる方法の(nested functionsfunction handlesを使用して)簡単な例です。まず、M-ファイルでこの関数を保存:

function colorFcn = colored_patches 

    selectedColor = [1 0 0]; %# The default selected color 

    figure;         %# Create a new figure 
    axes;         %# Create a new axes 
    patch([0 0 1 1],[0 1 1 0],'r',...  %# Plot a red box 
     'ButtonDownFcn',@patch_callback); 
    hold on;         %# Add to the existing plot 
    patch([2 2 4 4],[1 2 2 1],'g',...  %# Plot a green box 
     'ButtonDownFcn',@patch_callback); 
    patch([1 1 2 2],[3 4 4 3],'b',...  %# Plot a blue box 
     'ButtonDownFcn',@patch_callback); 
    axis equal;        %# Set axis scaling 

    colorFcn = @get_color; %# Return a function handle for get_color 

%#---Nested functions below--- 

    function patch_callback(src,event) 
    selectedColor = get(src,'FaceColor'); %# Set the selected color to the 
              %# color of the patch clicked on 
    end 

    function currentColor = get_color 
    currentColor = selectedColor;   %# Return the last color selected 
    end 

end 

次に、上記のコードを実行し、変数に返さ関数ハンドルを保存します。これは、3色のボックス付きの図を作成します

colorFcn = colored_patches; 

、そのような:あなたは色付きのボックスのいずれか、colorFcn意志ちゃんからの出力の上にマウスをクリックして今すぐ

alt text

、 GE:

%# Click the red box, then call colorFcn 
>> colorFcn() 
ans = 
    1  0  0 %# Returns red 

%# Click the blue box, then call colorFcn 
>> colorFcn() 
ans = 
    0  0  1 %# Returns blue 

%# Click the green box, then call colorFcn 
>> colorFcn() 
ans = 
    0  1  0 %# Returns green 
+0

返信ありがとうございます...しかし、これは私の質問の答えは....私はオブジェクトに基づいて画像をセグメント化し、ユーザーに任意のオブジェクトを選択させるために彼の画像のセグメンテーションを表示する(彼が好きなオブジェクトをクリックすることによって)画像を、この場合、私はこのオブジェクトに応じて私のproceesingをするために選択したオブジェクトの情報を取る必要があります – zenab

関連する問題