matlab 2017b SurfBox工具箱配置(surfacelet变换)

以下是我的原创内容,也是我的第一篇博客,转载请注明哦吐舌头

以下是我这两天安装SurfBox工具箱的一丢丢经验,分享给大家,供大家参考

第一步:准备工作

1.1、我的电脑是win7旗舰版64位,matlab版本是2017b,

(下面这个链接里是matlab2017b的安装包:链接:https://pan.baidu.com/s/19vCSX7vj8t8W7Bfx7qGQ0w 密码:k412

谁要可以拿去,这是BT种子版的用迅雷就可以下载。用迅雷下载完之后是三个文件,如下图所示,最上面的那个压缩文件是破解

用的,下面那两个镜像文件是安装包,用360压缩把那两个镜像文件解压缩得到两个文件夹:R2017b_win64_dvd1和

R2017b_win64_dvd2,将R2017b_win64_dvd2文件夹里的所有文件复制,粘贴到R2017b_win64_dvd1中,总之,就是把

R2017b_win64_dvd1和R2017b_win64_dvd2两个文件夹合并,如果不合并的话,matlab安装到一半会中断)

matlab 2017b 安装破解教程: http://blog.csdn.net/m0_37638031/article/details/78982498 

1.2、VS版本是 VS2013_RTM_ULT_CHS

微软官方下载链接:

http://download.microsoft.com/download/0/7/5/0755898A-ED1B-4E11-BC046B9B7D82B1E4/VS2013_RTM_ULT_CHS.iso

序列号:BWG7X-J98B3-W34RT-33B3R-JVYW9

1.3、下面的链接是我从mathworks官网上下载的SurfBox工具箱

链接:https://pan.baidu.com/s/1EjWCh4XnXitbMRoYJsavhg 密码:8nqt

下面这个链接是mathworks官方下载地址:

https://cn.mathworks.com/matlabcentral/fileexchange/14485-surfacelet-toolbox?s_tid=gn_loc_drop

下载完SurfBox工具箱之后,我将它解压到 D:\MATLAB2017B\2017B_an_zhuang_lu_jing\toolbox


D:\MATLAB2017B\2017B_an_zhuang_lu_jing 是我的matlab的安装路径,其中的toolbox文件夹里是matlab的工具箱,

因此,我把SurfBox工具箱解压到toolbox文件夹下面。

1.4、fftw库

下面的链接是我下载的fftw库,版本为 fftw-3.3.5-dll64 ,64位的

链接:https://pan.baidu.com/s/1oInk9W3QLByzCcIObUBwgw 密码:65rj

下面的链接是官方下载地址: http://www.fftw.org/download.html 

下载时要先看自己电脑是 32 位还是 64 位的,然后下载相应版本的 fftw 库

下载完之后,我把下载的压缩包解压到 D:\MATLAB2017B


第二步:安装“MinGW-w64”

2.1、打开matlab,可以看到这个附加功能


点击“附加功能”——>“获取附加功能”——>“MinGW-w64”如下图所示


2.2、点击“MinGW-w64”,如下图所示,看画圈的部分,我这是安装过“MinGW-w64”了,圈里显示的是“管理”,如果你

没有安装“MinGW-w64”,圈里显示的应该是“安装”,直接点击“安装”,matlab就会自动帮你安装“MinGW-w64”了,

这需要等上几分钟。


等安装好“MinGW-w64”之后,就可以把这个页面关了。

PS:安装“MinGW-w64”时,需要有一个mathworks的一个账号,还要填写一个ID(这个都是自己设的,不需要什么安装序

列呀什么的,自己当初还傻了吧唧的以为要注册序列神马的)你自己根据提示注册就行了。

2.3、测试

在matlab命令窗口输入 mex -setup 回车:(注意 mex 和-setup中间有个空格 )


这说明MinGW-w64已经安装成功。

第三步:生成 .lib 文件

3.1、这一步需要用到VS安装目录里的 lib.exe 文件

我的 VS 安装路径为 D:\Visual_Studio_2013


所以,lib.exe 所在的路径为 D:\Visual_Studio_2013\VC\bin


3.2、找到 .def 文件所在的位置, .def 文件就在1.4节所说的fftw库所在的文件夹D:\MATLAB2017B\fftw-3.3.5-dll64里,如下图:


将这三个 .def 文件复制到 lib.exe 所在的路径 D:\Visual_Studio_2013\VC\bin 里。

3.3、在cmd进入上面提到的bin目录:



此时,再看bin文件夹里,已经生成了 .lib 文件,现在就可以把cmd窗口关了。


3.4、把这三个 . lib 文件复制到fftw库里


第四步:添加 SurfBox 工具箱

4.1、找到 libfftw3-3.dll 、libfftw3f-3.dll 、libfftw3l-3.dll 这三个文件,这三个文件在fftw库里,将它们复制到 SurfBox 文件夹

里:D:\MATLAB2017B\2017B_an_zhuang_lu_jing\toolbox\SurfBox\SurfBox

这也是 mexcompile.m 函数所在的路径

4.2、打开matlab,主页——>设置路径——>添加并包含子文件夹




然后点“保存”——>“关闭”

4.3、工具箱更新缓存


“预设”——>“常规”——>“启用工具箱路径缓存  打上勾”——>“更新工具箱路径缓存”——>“确定”。

4.4、测试工具箱是否可用

在matlab命令窗口中输入


此时,说明 SurfBox 工具箱可用。

第五步:改写编译 mexcompile 文件

5.1、在matlab命令窗口中输入 open mexcompile 回车




5.2、编译,测试

在matlab命令窗口输入mexcompile,回车


(我运行mexcompile的时候,有错误产生,会在后面说明)

下面来测试 SurfBox 工具箱里的demo能否运行,


在matlab命令输入窗口输入:demo_Filters2D 回车



也可以测试其它demo,如果运行成功,就说明 SurfBox 工具箱配置已经全部完成



前面5.2说到,我编译mexcompile文件的时候,出现了一些问题,如下:

1、


可以看到,这个问题出现在mexcompile函数的第120行,

eval(['mex ' 'mex/mexSurfaceletDec.cpp ' SURFSRC ' -I' FFTW_include ...
        ' -outdir Matlab']);

这条语句错在哪儿了呢?我们往上看


这句话是说,函数HourglassFilterBank.cpp第643行的 'memset' 函数并没有被定义,而函数'memset'的头文件是

<memory.h> 或 <string.h>,所以,只要将函数 HourglassFilterBank.cpp 的头文件中加上

#include "string.h"

即可。

(关于 memset 函数的介绍,百度一下有很多说明,也可以参考以下链接:

有类似错误的,也可以这样解决:

先看错误出在哪儿,是哪个函数没有被定义,然后找到该函数的头文件,将这个头文件加在 调用该函数的  函数开头就行了

比如这个错误,memset 函数没有被定义,头文件是<memory.h> 或 <string.h>,调用 memset 函数的是

HourglassFilterBank.cpp,所以,将 

#include "string.h"
加在 HourglassFilterBank.cpp开头就行了。

2、运行mexcompile .m文件没有错误的话,查看SurfBox \ matlab 文件夹下有没有 mexSurfaceletDec.mexw64 等三个文件

如果有,说明编译完成。如果此时运行demo中的例子还报“未定义函数或变量”的错误(如下图),按照4.3,再更新一下工具

箱缓存即可。





参考链接:

1、

https://m.baidu.com/from=1012852y/bd_page_type=1/ssid=0/uid=0/pu=usm%402%2Csz%40320_1004%2Cta%40iphone_2_6.0_11_9.3/baiduid=B46F3A3EA6CA10CF0A2D11CF871B7C4D/w=0_10_/t=iphone/l=3/tc?ref=www_iphone&lid=9651792033558679900&order=2&fm=alop&tj=www_normal_2_0_10_title&vit=osres&m=8&srd=1&cltj=cloud_title&asres=1&title=matlab%E9%85%8D%E7%BD%AEsurfbox%E5%B7%A5%E5%85%B7%E7%AE%B1(surfacelet%E5%8F%98%E6%8D%A2)--...&dict=32&w_qd=IlPT2AEptyoA_yimCVGbGiAxww4D1ayjEhaUNq&tcplug=1&sec=28373&di=03243630d4295302&bdenc=1&tch=124.341.258.367.1.404&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IUMLDBXUAQWjc95SjfenaXdNpX8KhVnmKHE_wdoTQsBYGwn7f&eqid=85f20db79635d000100000015aaca4b7&wd=&clk_info=%7B%22srcid%22%3A1599%2C%22tplname%22%3A%22www_normal%22%2C%22t%22%3A1521263813596%2C%22xpath%22%3A%22div-a-h3-em2%22%7D&sfOpen=1 

2、 http://brent0541.blog.163.com/blog/static/18509325420119224331765/ 

3、http://blog.csdn.net/moyumoyu/article/details/7950528 

4、 http://blog.csdn.net/shenziheng1/article/details/53147620 


猜你喜欢

转载自blog.csdn.net/qq_30387863/article/details/79628832
今日推荐