2013-04-28 6 views
0

저는 Matlab을 사용하여 이미지 편집 프로그램을 만들고 있습니다. 사용자는 하나의 푸시 버튼 콜백 함수로 이미지를 업로드합니다. 그런 다음 다른 푸시 버튼 콜백을 사용하여 이미지를 편집 할 수 있습니다 (회전, 흑백으로 변경).Matlab 업데이트 이미지 핸들

이미지에 액세스하여 개별적으로 성공적으로 편집 할 수 있지만 항상 원래의 업로드 된 상태로 되돌아갑니다. 예를 들어, 먼저 회전시킨 다음 흑백으로 변경하면 회전이 사라지고 그 반대의 경우도 마찬가지입니다.

내가 사용하고 있습니다 :

handles=guidata(hObject); 

을 모든 함수의 시작 부분에. 그리고 모든 기능의 끝에는

guidata(hObject, handles); 

이지만 기능은 항상 원래 업로드 된 이미지에 액세스합니다.

모든 수정 후 어떻게 이미지 핸들을 성공적으로 업데이트 할 수 있습니까 ??? 하나 콜백 함수에서의 화상에 대한 작업을 수행 할 때

function pushbutton3_Callback(hObject, eventdata, handles) 
handles=guidata(hObject); 
I = rgb2gray(handles.im) 
himage = imshow(I, 'Parent', handles.axes1); 
guidata(hObject, handles); 
+1

각 기능에 입력 및 출력 매개 변수로 'hObject'를 포함합니까? – tashuhka

+0

콜백 함수 중 하나의 코드를 게시 할 수 있습니까? 우리는 당신이 이미지에 어떻게 접근하고 있는지 알아야합니다. – Amro

+0

도움을 주셔서 감사합니다 - 콜백 함수의 예를 포함하도록 편집했습니다. – Gwenji

답변

0

가 다시 이미지를 획득 handles 구조의 결과를 저장한다 : 여기

콜백 함수의 예이다. 그러면 콜백 함수가 다음에 실행될 때 수정 된 이미지가 얻어집니다.

function pushbutton3_Callback(hObject, eventdata, handles) 
    %# get the image from the handles structure 
    img = handles.im; 

    %# process the image in some way and show the result 
    img = rgb2gray(img); 
    himage = imshow(img, 'Parent', handles.axes1); 

    %# store the image back in the structure 
    handles.im = img; 
    guidata(hObject, handles); 
end 
+0

완벽한 !! 고마워요! – Gwenji