簡體   English   中英

MATLAB 中的 Mex 配置,用於 OpticalFlow.cpp 代碼

[英]Mex Configuration in MATLAB for OpticalFlow.cpp code

您好,我正在使用光流 Matlab/C++ 代碼(源代碼)。 我在 Linux-Ubuntu 14.04 64 位操作系統下使用 MATLAB。 在配置文件中它說:

在編譯之前,請檢查子文件夾“mex”中的 project.h 文件。 如果您使用 Windows,則無需執行任何操作。如果您使用 Mac Os 或 Linux,請取消注釋#define _LINUX_MAC 行。

這已經完成了。 它也遵循:

在 Matlab 中,適當配置 mex 后,將目錄更改為“mex”並運行以下命令:

mex Coarse2FineTwoFrames.cpp OpticalFlow.cpp GaussianPyramid.cpp

我認為是因為未能在 MATLAB 中正確配置 mex 編譯器,我在運行上述 mex 命令后收到以下錯誤:

Warning: You are using gcc version '4.8.2'. The version of gcc is not
supported. The version currently supported with MEX is '4.7.x'. For a list
of currently supported compilers see:
http://www.mathworks.com/support/compilers/current_release. 
Warning: You are using gcc version '4.8.2-19ubuntu1)'. The version of gcc
is not supported. The version currently supported with MEX is '4.7.x'. For
a list of currently supported compilers see:
 http://www.mathworks.com/support/compilers/current_release. 
  Error using mex In file included from /home/labrador/Yashar_BTSync /yasharBTSync /Multimedi Recommender Systems/Video    Classification/test_opticalFlow2/OpticalFlow      /me   x/Coarse2FineTwoFrames.cpp:2:0 /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia Recommender Systems/Video Classification/test_opticalFlow2/OpticalFlow/mex/project.h:7:3: error: stray ‘#’ in program
% #define _OPENCV
 In file included from /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia Recommender Systems/Video
 Classification/test_opticalFlow2/OpticalFlow/mex/Image.h:11:0,
             from /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia
             Recommender Systems/Video
             Classification/test_opticalFlow2/OpticalFlow   /mex/Coarse2FineTwoFrames.cpp:3:
             /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia
             Recommender Systems/Video
             Classification/test_opticalFlow2/OpticalFlow/mex/Stochastic.h:11:13:
             warning: extra tokens at end of #ifndef directive
             [enabled by default]
 #ifndef _abs(x)

         ^
  In file included from /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia
   Recommender Systems/Video
  Classification/test_opticalFlow2/OpticalFlow/mex/OpticalFlow.h:4:0,
             from /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia
             Recommender Systems/Video
             Classification/test_opticalFlow2/OpticalFlow     /mex/Coarse2FineTwoFrames.cpp:4:
             /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia
             Recommender Systems/Video
             Classification/test_opticalFlow2/OpticalFlow/mex/NoiseModel.h:6:0:
             warning: "PI" redefined [enabled by default]
    #define PI 3.1415926535897932384626433832
   In file included from /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia Recommender Systems/Video Classification/test_opticalFlow2/OpticalFlow/mex/Image.h:11:0,
             from /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia
             Recommender Systems/Video
             Classification/test_opticalFlow2/OpticalFlow   /mex/Coarse2FineTwoFrames.cpp:3:
             /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia
             Recommender Systems/Video
             Classification/test_opticalFlow2/OpticalFlow   /mex/Stochastic.h:16:0:
             note: this is the location of the previous definition
 #define PI 3.1415927 In file included from /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia Recommender Systems/Video
 Classification/test_opticalFlow2/OpticalFlow    
 /mex/Coarse2FineTwoFrames.cpp:2:0:/home/labrador/Yashar_BTSync/yasharBTSync/Multimedia Recommender
 Systems/Video
 Classification/test_opticalFlow2/OpticalFlow/mex/project.h:7:1: error:
 expected unqualified-id before ‘%’ token
 % #define _OPENCV

^

請問我該如何解決這個問題?

在 Linux 服務器上使用 MATLAB 中的 OpticalFlow 時,我也遇到了這個問題。 我通過添加一個選項 -compatibleArrayDims 來解決這個問題,

mex -compatibleArrayDims Coarse2FineTwoFrames.cpp OpticalFlow.cpp GaussianPyramid.cpp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM