数学建模_使用ginput函数提高CV模型程序的运行速度

来源:互联网 发布:11选5三角算法 编辑:程序博客网 时间:2024/05/17 08:23

善用matlab中的ginput()函数

最近在做一道题的时候,需要使用CV模型去查找图像边缘。

CV 模型的阐述
Tony ChanLuminita Vese Mumford-Shah 模型的基础上进行简化和改进,提出了一种基于水平集描述的主动轮廓模型,即CV 模型。该方法分割目标区域时,不再使用目标边缘的局部梯度特征,而是考虑图像的区域灰度信息,根据目标和背景的平均灰度设定能量函数,演化曲线在光滑力和图像力的驱使下朝着目标轮廓移动并收敛。

用白话讲CV模型就是通过灰度图像的梯度下降来查找轮廓的。所以,这个模型的一个很重要的提升速度的方法就是确定算法起始坐标。
比如一幅灰度图像,需要检测的比如说是左上角的一个圆,但我们事先并不知道圆在左上角,所以我们也许会在代码中规定算法的起始坐标为图像的中心点,那么算法完成的总时间就会很长,因为CV模型会一层一层迭代,像一个一个的同心圆一样,直到遇到符合算法中规定的梯度变化阈值,然后才开始检测。如果我们能直接规定算法的起始位置呢?这里就用到了matlab中的一个函数ginput,这个函数的作用便是由用户自己选择点,并将点的坐标保存,以备其他代码的使用。

ginput提供了一个十字光标使我们能更精确的选择我们所需要的位置,并返回坐标值。函数调用形式为:[x,y] = ginput(n)
更多调用形式可以 help ginput

假如我们只需要一个输入点作为CV算法的起始坐标,我们可以点击那个点,然后回车,就结束了点的坐标的采集。
比如
exmp1
这样就确定了算法的起始坐标。

(Copyright © http://blog.csdn.net/s_gy_zetrov. All Rights Reserved)


visitor tracker
访客追踪插件


原创粉丝点击