2014-05-17 4 views
1

이미지를 표시하기위한 두 개의 축이있는 하나의 MATLAB GUI를 설계했습니다. 나는 'imcontrast'함수를 사용하여 첫 번째 축의 이미지 밝기/대비를 조정합니다. 이제이 향상된 출력 (밝기/대비 조정 출력)을 일부 변수에 저장하려고합니다. 'imcontrast'함수는 출력 이미지를 반환하지 않으므로 어떻게 출력 이미지를 얻을 수 있습니까? 또는 특정 축에서 이미지 데이터를 읽을 수있는 방법이 있습니까? 나는 'getimage'함수로 시도했지만 Handle Graphics 객체 (즉, 이전에 표시된 입력 이미지)에 포함 된 첫 번째 이미지 데이터를 반환하고 최신 밝기/대비 조정 이미지는 반환하지 않습니다. 'imcontrast'기능으로 밝기/대비 조정 이미지를 저장하는 데 도움주세요.MATLAB GUI의 특정 축에서 이미지 데이터를 읽는 방법은 무엇입니까?

답변

1

사용이 - 그냥 사용하는 방법을 소개하는 GUI

내에서 사용하는 방법, 당신은 MATLAB - 가이드와 그것의 푸시 버튼을 만들 수 있습니다

imcontrast(gca) %// Perform imcontrast 
waitfor(gcf); %// Wait for figure data to be updated with imcontrast 
image_data = getimage(gcf);%// Store image data as image_data variable 

는 콜백 함수 사용의 이 -

%// Show the image on an existing image axes of the GUI. 
imshow('pout.tif') %// This image is available in MATLAB image library. 

imc_figure = imcontrast(gca) %// Perform imcontrast 
waitfor(imc_figure); %// Wait for the data to be updated in the current figure 
image_data = getimage(gcf);%// image data stored into image_data variable 

%// Open image_data on a separate figure window for verification. 
%// Make sure this is the updated image. 
figure,imshow(image_data) 

어떻게 독립 코드로 사용하는

Im = imread('cameraman.tif');%// This image is available in MATLAB image library. 
h1 = imshow(Im) 
h2 = imcontrast(gca); %// Perform imcontrast 
waitfor(h2); %// Wait for figure data to be updated with imcontrast 
image_data = getimage(gcf);%// Store modified image data 

%// Show modified image data for verification 
figure,imshow(image_data) 
+0

나를 도와 주셔서 감사합니다. 하지만, 작동하지 않습니다. waitfor (gcf)를 추가 한 후에도 (제안한대로) getimage는 여전히 이전에 표시된 입력 이미지를 반환합니다. 다른 대안으로 도와주세요. – Vikrant

+0

@Vikrant 잘 작동 했으니 다시 시도 할 수 있었습니까? MATLAB을 닫고 GUI를 다시 시작 하시겠습니까? – Divakar

+0

나는 MATLAB을 다시 시작하려고 시도하고 또한이 몇 줄을 별도의 MATLAB 파일에 작성하여 시도했다. Im = imread ('cameraman.tif'); imshow (임); imcontrast (gca); % // imcontrast 수행 waitfor (gcf); % // imcontrast로 그림 데이터가 업데이트 될 때까지 기다립니다. image_data = getimage (gcf); % // 이미지 데이터를 image_data 변수로 저장합니다. imshow (image_data); 그러나 image_data 변수에 빈 행렬을 반환합니다. 나는 콘트라스트를 조정하고 콘트라스트가 실행될 때 나타나는 '콘트라스트 조정'창을 닫았습니다. '데이터 조정'창에서 데이터 조정을 클릭했지만 시도하지 못했습니다. – Vikrant