1

Hellooo 仲間 Matlabbers

まとめている GUI に少し問題があります。基本的に、表示している画像のコントラストを変えるために使用しているスライダーがあります。

画像自体は軸の図であり、ここ数か月間、スライダーのコールバックを使用して画像を新しいコントラスト値で更新してきましたが、ご存知のように、画像は手を離したときにのみ更新されますハツカネズミ。スライダーを動かすと、画像が継続的に更新されるようになりました。私は次のようなイベントリスナーでこれを行いました:

addlistener(handles.dispmaxslider,'ContinuousValueChange',@(hobject, event) maxSliderChanged(hObject, event, handles));

maxSliderChanged 内では、現在の軸を GUI 内の軸に設定し、呼び出して新しい値で画像を更新するだけです。

 imshow(image, [min max]);

最小値と最大値はスライダーによって定義されます。への呼び出しで安全に保護した軸を更新する代わりに、スライダーを使用すると問題が発生します

axes(currentAxes)

これにより、更新のたびに、更新されたイメージが正しい場所に表示されます。しかし、スライダーを動かすと新しい図が作成され、その画像は cal ごとに更新されるようになりました。これは、axes() メソッドへの呼び出しがなかったかのようです。私の addListener 関数には、これを防ぐために使用できるものがあると思われますが、解決策はわかりません。何かご意見は?

意思

4

1 に答える 1

0

誰かが興味を持っているなら、私は imshow() メソッドに簡単な変更を加えて、特定の UI 要素を強制的に更新するようにしました。そのようです:

axes(currentAxes);
imshow(image, [min max]);

になります:

imshow(image, [min max], 'Parent', axisHandle);

このようにして、スライダーの変更に応じて正しい画像パネルが継続的に更新されるようになりました。

于 2014-05-08T14:34:25.557 に答える