在matlab gui中,在axes上用imshow函数显示一副图片,然后在axes的ButtonDownFcn下写下相应的响应,比如获得图像任一像素的坐标点。但是当你点击axes时,是不会有任何响应的。 例子:用pushbutton来在axes上显示图像 function pushbutton1_Callback(hObject, eventdata, handles) axes(handles.axes1); % a7 = imshow(pic); pic = imread(‘435-2.bmp’); image(pic); waitforbuttonpress; pt = get(handles.axes1,’currentpoint’);%注意:问题出在这里。 m = round(pt(1,2)); n = round(pt(1,1)); H_text1=findobj(‘tag’,’text1’); H_text2=findobj(‘tag’,’text2’); % 将像素坐标点显示在文本框中 set(H_text1,’string’,num2str(m)); set(H_text2,’string’,num2str(n)); 这样就可以得到坐标值了。 但是问题又来了,按下pushbutton,坐标值只能得到一次,想得到第二次,就得再按一次pushbutton,问题是,怎么样连续得到坐标值呢? 正确做法:下面是我的解决办法 function pushbutton1_Callback(hObject, eventdata, handles)%这个是设置鼠标事件的,点击一下鼠标,会出现相应细胞的一些参数 % hObject handle to pushbutton1 (see GCBO) % imageHandle响应,而不是对axes1响应 end
function ImageClickCallback ( objectHandle , eventData ) x=ceil(coordinates (1)); end |
matlab中GUI界面点击图片获取坐标问题的解决方法
最新推荐文章于 2024-03-28 14:41:43 发布