2009-04-20 7 views
3

MATLAB GUIDEを使用してGUIを作成する課題があり、編集した画像の表示に問題があります。私は画像を編集するボタン(赤、青、緑の成分を取り除いて回転する)を持っていて、編集した画像を表示する必要があります。編集した画像を表示するにはimshowを使用していますが、新しいウィンドウで表示し、実行していたGUIをシャットダウンします。誰も助けることができますか?MATLABで作成したGUIで編集した画像を表示する際の問題

私はこれに取り組んできましたが、問題を解決するさまざまな方法を試しましたが、どれもうまくいきませんでした。しかし、私はMATLAB 7.0.1を使用しており、7.7.0ではこの問題のアップデートがあるかもしれません。

+0

hObject = imshow(newimagedata) 

がすることで、この操作を更新し、保存することを忘れないでください。 MATLAB(2009a)の最新バージョンです。この特定の問題に関するv7.0.1以降、どれだけ変化しているのか分かりません。私は、v7.1とv7.7の間でIMSHOWを実行したときに、IMSHOWの動作が少し違っていたことを知っています。コードの一部(全部ではない)を投稿することができれば、おそらくもっと役立つかもしれません。 – gnovice

答えて

4

あなたが最初imshowで画像をプロットし、それが作成した画像オブジェクトへのハンドルを返す必要があります。新しいデータで画像を更新するには、次に

A = (the initial matrix of image data); 
hImage = imshow(A); 

、次の代わりに、再びimshowを呼び出すことを試してみてください:

B = (modification of the original image matrix A); 
set(hImage, 'CData', B); 

すでに作成したイメージオブジェクト変更されますsetコマンドを使用する(画像オブジェクトのプロパティのリストをhere見つけることができます)。あなたの追加のアドレッシング

hAxes = (the handle to an axes object); 
imshow(A, 'Parent', hAxes); 

EDIT:

また、あなたはまた、画像をプロットするオブジェクトを軸それを伝えるためにimshowへの呼び出しにパラメータを追加することができます関数間でGUIデータを共有する問題がある場合は、hereのMATLABドキュメントを参照してください。そこに記載されているように、GUIに含まれるさまざまな関数間でデータを渡す方法はいくつかあります。入れ子関数(SO hereに記載)、オブジェクトのUserDataプロパティ(SO hereに記載)、または関数setappdata/getappdataまたはguidataguidataオプションは、GUIDEで作成されたGUIで使用するのに最適です。

+0

私が今問題としているのは、変数 'hImage'があることを認識していないということです。 GUIの別の機能で画像を編集しようとしているからです。どのようにhImageデータを持ち越すことができますか? – Phizunk

0

GUI mファイル関数は、画像データをhObjectという変数に自動的に割り当てます。あなたのイメージ変更を行った後は、hObjectに新しいデータを再割り当てする必要があります。私は、以下の与えたリンクはに関連

guidata(hObject, handles) 
関連する問題