如何查看.mex文件的源代码

时间:2017-07-07 14:25:21

标签: matlab mex

我在网上看到你可以使用edit rgb2gray来打开源文件,但我遇到了rgb2gray.m文件中的另一个我不知道如何查看的函数。

第54-55行包含以下功能:

if threeD
  I = images.internal.rgb2graymex(X);

如何查看此rgb2graymex函数的源代码?

2 个答案:

答案 0 :(得分:4)

顾名思义,

rgb2graymex是一个.mex文件。 .mex文件是预先编译的文件,因此您无法查看其中的内容,除非您使用异国情况的反编译器(通常不会给出100%的结果),或者从其中获取源代码。写它,这不会发生专有代码。

详细了解MEX文件on the MathWorks site

答案 1 :(得分:1)

一般情况下,您无法查看.mex文件的内容,正如@Adriaan在回答中所示。

你在评论中提到,你真正想要的是找到从变换矩阵中使用的系数,用于将RGB转换为灰度。您可以在引用部分正下方的代码中找到这些:

  T    = inv([1.0 0.956 0.621; 1.0 -0.272 -0.647; 1.0 -1.106 1.703]);
  coef = T(1,:);

这让我:

coef =
   0.298936021293775   0.587043074451121   0.114020904255103

现在确实无法证明.mex文件正在做与此相同的事情,这是真的。但是当你传入一个大的mxnx3 RGB图像而不是一个小的nx3 RGB色图时,.mex文件就可以加快速度。如果它使用不同的系数,我会感到非常惊讶。我刚刚完成的一些实验仅表明.mex文件与使用代码中存在的系数之间的最微小的数值差异(<1e-15)。