I have a double 2D image that I want to use in my UI that I made with guide. I have a axis handle which I want to draw it to. I tried this with no success, my image is all blue.
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);
This mexFunction returns a double 2D image. If I just call this function without matlab and imShow (resultImage); I get the right result. So I believe it has something to do with the colormapping of the double and the fact that the image is not 3D but 2D. But I am 0 familiar with gui in matlab to be sure what to do. I’ve done some more researches and I think my problem might be related to the AlphaData property, but I don’t know what to do with that.
your image values must be in range [0, 1] in order to be plotted properly by the
imagefunction.imshowworks because it first looks at the min and max value in your image and then scales values to match this range. or so. (maybe it works differently internally, but whatever..)