在windows下运行Measuring the objectness of image windows的代码objectness-release-v2.2的方法
来源:互联网 发布:双系统怎样重装ubuntu 编辑:程序博客网 时间:2024/05/17 20:00
最近在学习objectness proposal的一系列论文,其中有一篇paper发表在CVPR2010上,名为《What is an object ?》,之后又发表在TPAMI上名为《Measuring the objectness of imagewindows》。代码以及paper首页 因为代码中涉及到一些matlab和C混编的细节,所以对objectness-release-v2.2的运行方法做了以下总结。
话不多说,上步骤:
1、编写compile.m文件,编译MEX文件夹下的.c文件。注意include和libpath的路径是你安装opencv路径,具体写法参照我的示例就可以啦。
% Compiles mex filesclc; clear all; cd MEX;if ispc disp('PC');include = ' -ID:\MenghanZhou\Han_Tools\VS2013\opencv\build\include\opencv\ -ID:\MenghanZhou\Han_Tools\VS2013\opencv\build\include\ -ID:\MenghanZhou\Han_Tools\VS2013\opencv\build\include\opencv2\';%D:\MenghanZhou\Han_Tools\VS2013\opencv\build\include\opencv\%D:\MenghanZhou\Han_Tools\VS2013\opencv\build\include\%D:\MenghanZhou\Han_Tools\VS2013\opencv\build\includeopencv2\libpath = 'D:\MenghanZhou\Han_Tools\VS2013\opencv\build\x64\vc12\lib\';files = dir(fullfile(libpath, '*.lib'));lib = [];for i = 1:length(files),lib = [lib ' ' libpath '\' files(i).name];end eval(['mex computeIntegralHistogramMex.c -O' include lib]); eval(['mex slidingWindowComputeScore.c -O' include lib]); eval(['mex nms4d.c -O' include lib]); eval(['mex NMS_sampling.c -O' include lib]); eval(['mex scoreSamplingMex.c -O' include lib]); eval(['mex computeScoreContrast.c -O' include lib]); endif ismac disp('Mac'); include = ' -I/opt/local/include/opencv/ -I/opt/local/include/'; libpath = '/opt/local/lib/'; files = dir([libpath 'libopencv*.dylib']); lib = []; for i = 1:length(files), lib = [lib ' ' libpath files(i).name]; end eval(['mex computeIntegralHistogramMex.c -O' include lib]); eval(['mex slidingWindowComputeScore.c -O' include lib]); eval(['mex nms4d.c -O' include lib]); eval(['mex NMS_sampling.c -O' include lib]); eval(['mex scoreSamplingMex.c -O' include lib]); eval(['mex computeScoreContrast.c -O' include lib]); endif isunix disp('Unix'); include = ' -I/usr/local/include/opencv/ -I/usr/local/include/'; libpath = 'D:\MenghanZhou\Han_Tools\VS2013\opencv\build\x86\vc11\lib\'; files = dir([libpath 'libopencv*.so.2.2']); lib = []; for i = 1:length(files), lib = [lib ' ' libpath files(i).name]; end eval(['mex computeIntegralHistogramMex.c -O' include lib]); eval(['mex slidingWindowComputeScore.c -O' include lib]); eval(['mex nms4d.c -O' include lib]); eval(['mex NMS_sampling.c -O' include lib]); eval(['mex scoreSamplingMex.c -O' include lib]); eval(['mex computeScoreContrast.c -O' include lib]); endcd ..disp('Compilation finished.');
2、执行这个compile.m文件,这时在MEX文件夹下会生成每个.c文件对应的.mexw64文件(因为我的系统是64位的,所以生成的是64位Windows下的dll。如果32位的,生成的文件后缀名应该是.mexw32)
这里需要说明一点,可能computeScoreContrast.c这个问价总是编译失败,提示的错误信息是mxErrMsgTxt是无法解析的外部符号。打开computeScoreContrast.c看一下这条相关语句出现的位置:
既然只是一条warning语句,注释掉也没什么影响的。注释掉之后,computeScoreContrast.c就可以成功编译了。
3、执行demo.m,会发现仍然有错误。
错误原因是因为segmentmex这个文件还没有编译,为啥呢,因为它没有在MEX文件夹里。所以我们需要单独编译一下segmentmex.cpp这个文件。
4、编译方法:打开segmentmex.m执行,之后会生成.mexw64文件。
别忘了在demo.m的开头添加路径,否则pff_segment这个文件夹不会被添加进路径中去的。
addpath(genpath(pwd));imgExample = imread('002053.jpg');boxes = runObjectness(imgExample,10);figure,imshow(imgExample),drawBoxes(boxes);
5、执行demo.m,成功运行啦,可以愉快地学习代码啦~~
- 在windows下运行Measuring the objectness of image windows的代码objectness-release-v2.2的方法
- Objectness measure V2.2
- 似物性检测——linux下运行objectness-v2.2并分析源码(pami2012论文)
- BING objectness 代码运行 vs2012 64位
- matlab of JPEG2000 (Jasper interface) 在windows下的运行
- OpendTect4.0.1在Windows的编译过程,在Debug状态下运行出R6034错,Release状态下可以运行!
- BING(Binarized Normed Gradients for Objectness )的一些分享
- 在windows下禁止程序运行的方法
- 在Windows安全模式下运行MySQL的方法
- Twisted-在Windows下运行trial的方法
- PBRT-v2在windows下的配置与使用
- openssl 在windows 下的编译 Release版 Debug版
- Heritrix在Windows下的安装,运行
- nginx在windows下的运行
- DPM在Windows下运行的解决方法
- JKTEBOP在Windows下的运行
- windows下python运行的方法
- Caffe在Windows的VS2013运行方法
- 本周互动留言抽奖结果公布!!
- @Controller和@RestController的区别
- 打砖块
- [Unity]简单的socket客户端和服务器
- java.nio.channels.IllegalBlockingModeException
- 在windows下运行Measuring the objectness of image windows的代码objectness-release-v2.2的方法
- CentOS中Mysql定时备份
- maysql_having
- 【Go】协程
- Sql 数据查询区分大小写方法
- python Global和Return用法
- 解决:Ubuntu14.04使用vi编辑器时输入异常且按方向键乱码
- Syntax error, insert "Dimensions" to complete TypeArgument
- Lauren与密码学5,对称密码系统