use*_*539 12 python matlab wrapper mlabwrap
我需要使用MATLAB图像采集工具箱从摄像机中获取少量图像.MATLAB似乎是一个很好的解决方案,因为图像采集很简单,之后我必须进行一些图像处理.我搜索了很长时间,但我还没有找到任何工作.
有一些尝试:
mlabwrap 1.1 - 运行MATLAB脚本:
一个MATLAB脚本,如:
vid = videoinput('testadaptor');
img = getsnapshot(vid);
imwrite(img,'./image.png','png');
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令运行此脚本:
mlab.run('script.m')
Run Code Online (Sandbox Code Playgroud)
但是,在哪里传递一些参数(目录,图像描述等)?我没有找到任何东西,因为mlabwraps可怜的纪录片.我已经使用了mlab.lookfor('感兴趣的主题')函数而没有成功
mlabwrap 1.1 - 使用mlab函数进行图像采集:
乍一看,没有可能读出"视频输入对象",没有以下功能:
image = getsnapshot(video input object)
imwrite(image,'directiory\image.png','png')
Run Code Online (Sandbox Code Playgroud)
蟒蛇与Matlab桥
https://github.com/jaderberg/python-matlab-bridge
我有Windows7 64位操作系统.他们说,它只在unix上工作.
Nipype
http://nipy.sourceforge.net/nipype/api/generated/nipype.interfaces.matlab.html
似乎很新.我没有尝试安装它.它似乎适合我的问题,但不适合Windows,我猜.
PyMAT
没有python 2.7支持
那么有谁可以帮助我吗?
bre*_*nce 12
虽然我对python-matlab-bridge,Nipype或PyMAT不是很熟悉,但我已经用mlabwrap完成了相当多的工作,我会尝试回答你关于那个包的问题.
首先,如果你在函数方面工作而不是脚本,那将会容易得多.让我们将您的Matlab脚本重新编写为函数,myFunction.m如下所示:
function myFunction(v_input, directory, file_name)
vid = videoinput(v_input);
img = getsnapshot(vid);
location = [directory file_name]
imwrite(img, location,'png');
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用python调用此函数mlabwrap.mlab,为函数参数传入字符串.所有Matlab函数(包括用户定义的函数)都可以作为mlabwrap.mlab模块的属性使用.
>>> from mlabwrap import mlab
>>> mlab.myFunction('testadaptor', './', 'image.png')
Run Code Online (Sandbox Code Playgroud)
mlabwrap会将您的字符串转换为Matlab可读格式,并将它们作为参数传递给您的函数.如果a AttributeError被引发,这通常意味着您的函数不在Matlab路径上.您可以使用以下命令添加它:
>>> mlab.path(mlab.path(), 'C:\function\directory')
Run Code Online (Sandbox Code Playgroud)
正如警示一样,mlabwrap会自动转换一些参数类型,例如Python和Matlab之间来回的字符串或numpy数组.但是,有许多类型,例如Matlab结构和类,它无法转换.在这种情况下,它将MLabObjectProxy从Matlab函数返回一个.这些代理对象不能在Python中操作或转换为Python类型,但可以通过mlabwrap成功传递到其他Matlab函数中.通常,对于具有复杂输出的函数,最好将该输出写入Matlab函数中的文件,并从Python端的文件中导入数据.祝好运!
小智 6
[img] = get_image(some_parameter),您可以编写如下内容:matlab = matlab_wrapper.MatlabSession()
img = matlab.workspace.get_image(some_parameter)
Run Code Online (Sandbox Code Playgroud)
免责声明:我是matlab_wrapper的作者
| 归档时间: |
|
| 查看次数: |
15536 次 |
| 最近记录: |