Matlab에서 작성된 GUI에 편집 된 사진 표시 문제
-
12-09-2019 - |
문제
MATLAB 가이드를 사용하여 GUI를 만들기위한 과제가 있으며 편집 된 사진을 표시하는 데 문제가 있습니다. 그림을 편집하는 버튼 (예 : 빨간색, 파란색, 녹색 구성 요소를 제거하고 회전)과 편집 된 그림을 표시해야합니다. 나는 사용 중입니다 imshow
편집 된 그림을 표시하지만 새 창에 표시되고 실행중인 GUI를 종료합니다. 누구든지 도울 수 있습니까?
나는 이것에 대해 노력해 왔으며 문제를 해결하는 다양한 방법을 시도했지만 아무도 효과가 없었습니다. 그러나 MATLAB 7.0.1을 사용하고 있으며 7.7.0은이 문제에 대한 업데이트가있을 수 있습니다.
해결책
당신이 처음 이미지를 그와 함께 그릴 때 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
명령은 이미 만든 이미지 객체를 변경합니다 (이미지 개체 속성 목록을 찾을 수 있습니다. 여기).
또는 호출에 추가 매개 변수를 추가 할 수도 있습니다. imshow
이미지를 표시 할 축의 객체를 말하면 다음과 같습니다.
hAxes = (the handle to an axes object);
imshow(A, 'Parent', hAxes);
편집하다:
기능간에 GUI 데이터를 공유하는 추가 문제 해결 MATLAB 문서를 확인해야합니다. 여기. 언급했듯이 GUI와 관련된 다른 기능간에 데이터를 전달하는 몇 가지 방법이 있습니다. 여기), 객체의 'userData'속성 사용 (SO 언급 여기) 또는 함수 사용 setappdata
/getappdata
또는 guidata
. 그만큼 guidata
가이드에서 GUIS와 함께 사용하는 데 옵션이 가장 좋습니다.
다른 팁
GUI M 파일 함수는 이미지 데이터를 호출되는 변수에 자동으로 할당합니다. hObject
. 이미지 변경을 수행 한 후에는 새 데이터를 hObject
:
hObject = imshow(newimagedata)
이 작업을 업데이트하고 저장하는 것을 잊지 마십시오.
guidata(hObject, handles)