Как нарисовать двойное изображение типа 2D на ручке оси в matlabUI - PullRequest
0 голосов
/ 16 ноября 2011

У меня есть двойное 2D-изображение, которое я хочу использовать в своем пользовательском интерфейсе, который я сделал с помощью направляющей. У меня есть ручка оси, которую я хочу нарисовать. Я попытался это безуспешно, мое изображение все синее.

    function ComputeMap_Callback(hObject, eventdata, handles)
% hObject    handle to ComputeMap (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global healthyImage;
global sickImage;
global tumorMapImage;
global costFunction;
if(get(handles.radiobuttonMSE,'Value') == get(hObject,'Max'))
    costFunction = 0;

else

    costFunction = 1;
end
disp(costFunction);
tumorMapImage = mexFunction(im2double(sickImage),im2double(healthyImage),get(handles.blockSize,'Value'),get(handles.windowSize,'value'), costFunction);

image(tumorMapImage,'parent',handles.sImageGUI);

Эта mexFunction возвращает двойное 2D-изображение. Если я просто вызываю эту функцию без matlab и imShow (resultImage); Я получаю правильный результат. Поэтому я считаю, что это как-то связано с цветовым отображением двойника и тем фактом, что изображение не 3D, а 2D. Но я знаком с GUI в Matlab, чтобы быть уверенным, что делать. Я провел еще несколько исследований и думаю, что моя проблема может быть связана со свойством AlphaData, но я не знаю, что с этим делать.

1 Ответ

1 голос
/ 16 ноября 2011

значения вашего изображения должны находиться в диапазоне [0, 1], чтобы их можно было правильно отобразить с помощью функции image.

imshow работает, потому что сначала смотрит на min и max значение на вашем изображении, а затем масштабирует значения в соответствии с этим диапазоном.или так.(может быть, это работает по-другому внутри, но что угодно ..)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...