【问题标题】:how could find code of Matlab mex file?如何找到 Matlab mex 文件的代码?
【发布时间】:2016-08-03 04:36:13
【问题描述】:
我想将 Matlab 的 Imrotate 函数转换为 c++。
Matlab 在 Imrotate 中使用了一个 mex 文件(Imrotatemex)。
Matlab mex文件的代码怎么找?
【问题讨论】:
标签:
c++
matlab
opencv
mex
【解决方案1】:
输入using可以看到matlab使用的函数
edit imrotate
此外,文档说:
% Performance Note
% ----------------
% This function may take advantage of hardware optimization for datatypes
% uint8, uint16, and single to run faster.
在这种情况下,Matlab 调用 imrotatemex,即编译后从 Matlab 调用的 C 代码,通常速度更快。
【解决方案2】:
函数which显示指定项的完整路径,支持matlab函数、java方法、工作区变量以及当前工作文件夹或matlab路径上的任何文件:
which('imrotate')
which imrotate
如果您提供参数'-all',它将列出所有找到的引用:
which imrotate -all
当然,如果代码被混淆(pcode、shared library 或其他),则无需编辑太多。
【解决方案3】:
在我查看了前两个答案之后。命令
which imrotatemex -all
给我结果:
/Applications/MATLAB_R2015a.app/toolbox/images/images/private/imrotatemex.mexmaci64 % 图片专用
如您所见,它在一个私人文件中
参考这个答案中的方法,我们有两种方法可以访问它:
https://discussions.apple.com/thread/7583520?start=0&tstart=0
1.在finder中使用'Go'功能
使用路径 /Applications/MATLAB_R2015a.app/toolbox/images/images/private/
2.使用终端输入命令:
默认写入 com.apple.Finder AppleShowAllFiles YES
我搜索了一些结果,mexmaci64是一个c文件在matlab中编译的文件,所以我们不能直接编辑它。(?留这个问题)
从另一个方面来说,OpenCV 可能有一些基于 C 的实现。
问候,
林