文章标题

来源:互联网 发布:unity3d 多人游戏实现 编辑:程序博客网 时间:2024/06/03 07:29

最近开始接触图像分割,云里雾里,各种折腾各种坑不断啊!实践证明理论+实践+理论深入+实践,逐步得到动手能力的提高和对各式函数的不断理解。
首先从opencv开始,从开始配置到开始敲代码也是跌跌撞撞,深深感觉路漫漫其修远兮,吾将键盘慢慢敲起来,觉得自己的学习和收获的知识和心得要随时记录,不能被脆弱的记忆快速的沦陷,开始记录自己学习图像分割的生活。

在opencv中实现了mean shift用来做跟踪、分割和滤波的函数。
1、滤波的c++函数原型为:
void pyrMeanShiftFiltering(InputArray src, OutputArray dst, double sp, double sr, int maxLevel=1, TermCriteria termcrit=TermCriteria( TermCriteria::MAX_ITER+TermCriteria::EPS,5,1) )
src和dst分别为输入和输出图像,8 bit,3 channel,sp和sr为空间域和颜色域的半径,maxLevel为分割用金字塔的最大层数,termcrit为迭代的终止条件。
2、跟踪的函数原型为:
int meanShift(InputArray probImage, Rect& window, TermCriteria criteria)
proImage为生成的物体存在的概率图,window为初始化的搜索窗口(同时是输出的搜索结果),criteria为终止条件。
3、分割的函数原型为:
void gpu::meanShiftSegmentation(const GpuMat& src, Mat& dst, int sp, int sr, int minsize, TermCriteria criteria=TermCriteria(TermCriteria::MAX_ITER + TermCriteria::EPS, 5, 1))
大部分参数与pyrMeanShiftFiltering相同,minsize为最小的分割区域大小,小于这个大小的区域会被合并。
OpenCV sample里用pyrMeanShiftFiltering和floodfill函数共同实现了简单的分割的例子.(/samples/cpp/Meanshift_segmentation.cpp)。

0 0
原创粉丝点击