Matlab GUI 图像矩形剪切,并存储、发布

最近要实现一个目标检测的工作,训练数据都必须得自己生成,就想着写一个简单的工具来完成咯。其实这方面的代码网上也不少,在这里记录下来也算是留个底儿了,好歹也是自己花时间写的嘛。当然,如果能给别人提供一些帮助那就更好了。

GUI实现图像裁剪、存储主要是参考论坛:http://www.ilovematlab.cn/thread-52336-1-11.html

再啰嗦一下,目标检测的工作基本和“利用HOG+SVM进行行人检测”的工作一样。这个有很多牛人都有介绍咯,在这里提一下主要是为了在用这个工具的时候,可以联想到一些应用。^_^

下面就进入正题吧

第一个部分是图像的剪切和存储

先来个工具的界面截图吧。做的有点粗糙啊。^_^||

看着界面就知道工具怎么用了

首先,分别选择图像读取和图像存储的路径。见下图,显示有路径名,图像总数以及当前图像个数。

获取路径的操作很简单,就是一个函数

FilePath = uigetdir('C:\'); % 获取路径

然后,直接取框了。图中会出现可以随意调节的矩形框,选中目标区域,双击便可显示到小窗口中。取框的函数

h = imrect(handles.axesOrgImg,[10,10,250,200]);
rect = wait(h);

其中,[10,10,250,200]是人为设定的初始位置和矩形框大小。函数 imrect() 的参数、功能其实挺多的,比如可以固定矩形框的长宽比:

setFixedAspectRatioMode(h,true); % == 固定长宽比 == %

其他的就不一一介绍了,可以在函数帮助里面看咯。

PS. 这个是可以多次截取的。

最后,就是存储了。这个就没啥了,存储名是根据图像编号生成的,样本个数统计了当前已存储的图像个数。

第二个部分是代码的封装

数据实在太多,需要找人帮忙生成数据。那如果别人电脑上没有Matlab怎么办?当然就是封装咯。这部分工作网上也有蛮多,我就直接把百度文库里面(Matlab GUI设计和封装)的一篇介绍搬过来了。写一下吧,省得再点开链接了,^O^

大概流程如下:

  1. 选择编译器;mbuild -setup
  2. 利用界面的方式封装;运行deploytool,会出来生成工程的界面,包括工程名、路径以及类型。类型是“Windows Standalone Application”,
  3. 添加关联文件,然后编译。
  4. 为了能在没有Matlab的电脑上运行,还要添加MCRInstaller.exe到文件中一起封装。

PS. 其实Matlab封装的通用性并不好,比如64位系统写的不能用到32位了。而且因为封装了MCRInstall,所以文件还是蛮大的。我用的Matlab R2012b,封装完后300M+。^_^|||

OK了,工具代码都是比较简单滴,直接附上源码了。

代码下载

2015年8月24日 于西直门

你可能感兴趣的:(Matlab,图像处理)