图像处理包括图像复原最常用的工具是Matlab,随着Python和深度学习的火热,Python和matlab的混合编程成为需要。
mlab安装
环境要求:anaconda2(Python2.7,python3我没有安装成功,希望安装成功的指教)
matlab 2016a或matlab2017a或matlab2017b(亲自测试成功,其他的应该也可以)
安装步骤:注意如果是anaconda的话,最好是使用Anaconda Prompt
1.下载mlab,链接: https://pypi.org/project/mlab/#files,解压mlab-1.1.4.tar.gz
2.Anaconda Prompt进入解压路径
3.运行Python setup.py install
测试:
from mlab.release import latent_release
from matlab import matlabroot
print matlabroot()
如果正确输出matlab路径不报错,那么安装成功。
错误调试:
1). 如果出现:importerror:no module named numeric
按照提示的位置打开mlabwrap.py
第183行
注释掉import numeric
2). 测试时,如果出现:importerror: no module named wim32com.client
安装Python的win32扩展
如果还是提示错误:importerror: no module named wim32api
重启即可
注:win32com有两种形式,exe形式和whl文件形式,如果安装的Python2.7不是独立安装(例如在anaconda里面管理的Python27的环境),此时exe无法是识别出安装了Python2.7的路径,也就是不能正常安装。这时要进入python2.7的安装目录,使用pip install *.whl 文件来安装,win32comd的whl文件的下载链接为:https://www.lfd.uci.edu/~gohlke/pythonlibs/
3). 如果MATLAB不是正常安装,可能会无法识别到PC上安装的matlab。例如我原来将matlab安装到D盘,重新装机后发现原来的快捷方式没有了,但是进入matlab安装目录下的bin文件里找到matlab.exe可以打开并正常使用matlab,所以没有再安装matlab。但是如果使用mlab就找不到安装的matlab,我没有找到更好的方法,只是重新安装matlab就正常了。
使用问题:
1)使用mlab调用matlab不能返回结构体,也不能同时返回两个以及两个以上的变量。
2)而且要注意,使用matlab矩阵的起始位置为1,Python中矩阵的起始位置为0,存在区别,注意区分。
使用问题还有很多,比如出入matlab函数的形参的格式问题,具体函数不同,是浮点型还是整型,这种错误比较难查。还有传出的参数的格式等等。最好的办法就是根据错误提示,结合matlab的doc文档来调试。