您的位置:首页 > 理论基础

FT检测算法检测

2016-04-24 17:37 197 查看
随着项目的进行,学习的过程没有一点点的记录下来,还是觉得有点小遗憾的,回想几个步骤,如果电脑死机了,我还会快速编写出来吗。

在特征物提取的时候,看了两个显著物检测算法,一个RC,另一个FT。不知道在学习过程中,我还是比较喜欢FT,觉得神奇一点,检测后通过meansift技术进行分割的。

FT学习参考:http://ivrlwww.epfl.ch/supplementary_material/RK_CVPR09/.其中源代码已经提供好了,可以下载学习一下

贴出了我对数据转换的函数,转换后的imgBuffer类型数据可以直接用于FT提供的代码了,感兴趣的可以尝试一下。

void Mat2Vuint(const Mat& image,vector<UINT>& imgBuffer)

{
int height=image.rows;
int width=image.cols;
long imgSize= height*width;
imgBuffer.resize(imgSize);
uchar yy=255;
uchar sR,sG,sB;
int dex=0;
for(int i=0;i<height;i++)//RGBתLAB
for (int j=0;j<width;j++)

{
sR=(image.at<Vec3b>(i,j)[2]);
sG=(image.at<Vec3b>(i,j)[1]);
sB=(image.at<Vec3b>(i,j)[0]);//要注意RGB三通道的存储方式是BGR
imgBuffer[dex]=yy<<24|sR<<16|sG<<8|sB;
dex++;
}

}

下图是我测试的结果图片,就是将一幅图中觉得比较显著的区域分割出来的,原来大家好好看看参考资料即可。在看原代码时,将RGB通道的mat格式与源代码中的格式进行转换时代码调了一段时间,中间还是蛮容易出错的。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息