Matlab实现鼠标拖动显示轮廓线
在处理高度数据等非图像二维数据时候,难免需要实时查看x,y方向的截线信息,此时就需要一种简洁的方法来实现这一功能,目前在工程以及实验室环境下的方法是C++方法,显示大多数采用的是openCV开源代码,这里介绍了一种利用matlab实现这一功能的方法,其中借鉴了一些前辈的经验。
将通过以下步骤进行讲解
- 1.建立GUI界面
- 2.显示图片
- 3.显示line以及轮廓截线
- 4.实现鼠标拖动联动
- 5.功能升级
1.建立GUI界面
如图1所示
该图中,InputImageData和OutputImage控件正常创建即可,2个黑框控件需要调整一些属性,可根据个人需求调整背景颜色,重要的是调整NextPlot属性为replacechildren,这样可以在此控件中实时重绘曲线
此外还需创建一个开始按钮,这里我采用的是菜单形式,如图2所示
也可以根据个人喜好建立Bottom按钮。此外需要注意的是创建控件过程中,需要右键创建各自CreatFcn函数,没有这个函数就说明这个函数没有正确创建。
2.显示图片
显示图片很简单,在创建的开始函数中写相关代码,例如
function InputTXT_Callback(hObject, eventdata, handles)
% hObject handle to InputTXT (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
InputData=importdata('039高度.txt');
InputData=reshape(InputData,128,128)';
axes(handles.InputImageData);
imagesc(InputData);
axis off;
title('输入图像');%根据需求改变显示效果
3.显示line以及轮廓线
假定需要添加的效果如图3所示
需要实现的功能是拖动竖线,能够实时显示竖线所在位置的截面线,拖动横线,能够实时显示横线所在位置的截面线;
添加代码如下:
function InputTXT_Callback(hObject, eventdata, handles)
% hObject handle to InputTXT