我想把Matlab的Imrotate函数转换成c++。Matlab在Imrotate中使用了一个mex文件(Imrotatemex)。如何找到Matlab-mex文件的代码?
您可以通过使用键入来查看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代码,通常速度更快。
函数which
显示指定项的完整路径,支持matlab函数、java方法、工作空间变量以及当前工作文件夹或matlab路径上的任何文件:
which('imrotate')
which imrotate
如果您为其提供参数'-all'
,它将列出所有找到的参考:
which imrotate -all
当然,如果代码被混淆(pcode、共享库或其他),就没有太多可编辑的内容。
在我复习了前两个答案之后。命令
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是一个由matlab中的c文件编译的文件,因此我们不能直接编辑它。(?留作疑问)
从另一个方面来看,OpenCV可能有一些基于C.的实现
谨致问候,Lin