MEX 파일의 MEX는 ‘MATLAB Executable’의 약자로
MATLAB에서
호출하여 사용할 수 있는 파일이다.
자동 생성된 C코드를 검증하기 위한 목적으로 사용할 수 있습니다. 좀 더
구체적으로 설명하면 MEX파일은 MATLAB코드를 C코드로
변경한 후 이를 다시 MATLAB에서
사용하기 위해 컴파일된 파일이다.
- MetLab -
GitHub에서
mexopencv
빌드하기
Build하기
전 OpenCV 3.1 을
설치해야 한다.
(github에서
제공하는 mexopencv가
opencv
3.1 라이브러리를
사용해 MEX파일을
만들기 때문에 다른 버전은 에러발생)
2. 설치가 끝났다면 mexopencv 설치.
( 위 소스는 Opencv 함수 모든
함수를 MEX파일로
바꾼다. )
3. 설치가 끝나면 경로 설정에서 mexopencv 폴더를
경로에 추가.
4. 실행 명령어창에 아래 명령어를 입력.
1)mex
–setup c++
2)mexopencv.make('opencv_path',
'C:\OpenCV\build')
// opencv full
소스 빌드
출처 : https://github.com/kyamagu/mexopencv#windows
c/c++
함수를
MEX파일로
만들기
mexFunction 함수의 C 코드의 main함수와 같이 사용하고 mex compile을 이용하여 *.mexw32 (windows 32 bit 기준) 확장자를 갖는 MATLAB command, script, function에서 사용할 수 있는 실행함수를 구현할 수 있다.
mexfunction(int nlhs, mxArray *plhe[], int nrhs, const mxArray *prhs[])
{
}
nlhs : left-hand-side의 개수의
약자로 MATLAB함수의
출력 변수의 개수를 의미한다.
plhs : 출력
변수의 이중 포인터로 함수의 리턴값을 저장한다.
nrhs : right-hand-side의 개수의
약자로 MATLAB함수의
입력 변수의 개수를 의미한다.
prhs : 입력
변수의 이중 포인터로 함수의 입력값을 받는다.
•컴파일
과정
mex –setup 컴파일러
설정
mex mextest.c
Matlab에서
제공하는‘Computer
Vision
System Toolbox’
를 이용해
쉽게 만들 수 있다.
Computer Vision System
toolbox는 OpenCV
Interface C++ API 와
tesseract-OCR
언어
데이터 파일을 제공한다.
CV 알고리즘, OpenCV 함수등을 Matlab에서
편리하게 MEX-files형태로
사용 가능하게 한다.
ToolBox 이용하기
Matlab 명령어창
>>
visionSupportPackages
Install from internet을 선택하고 next한다.OpenCV Interface 선택한다.
Opencv
함수
별 MEX파일
만들기
>>
mex
–setup c++
// 명령어를 통해 컴파일러 언어 설정을 C++로
선택한다.
>>
cd(fullfile(fileparts(which('mexOpenCV')),'example',filesep,'TemplateMatching'))
Cpp 파일이 있는곳으로 디렉토리를 이동한다.
Ex)
>> mexOpencv
matchTemplateOCV.cpp
matchTemplateOCV
MEX-file이
생성된다.
-
출처
-
http://kr.mathworks.com/videos/using-opencv-with-matlab-97710.html?s_eid=PSM_12984 Using OpenCV with MATLAB
-Octave-
Cmake-gui
tool 이용해서
직접 opencv
build
하기
필요한
프로그램 설치
MinGW
컴파일러
설치
Cmake-gui 실행하고, 설치한 OpenCV경로에 맞게 설정한다.
Cmake-gui
tool 이용해서
직접 opencv
build
하기
Configure을
누르면 컴파일러 설정창이
나오는데,
MinGW
선택 ( 설정전에 환경변수 path에 ;C:\MinGW\bin
을 미리 추가해야 한다. )
Configure가
완료되면 Generate로
build하고
완료되면 처음 설정한 openCV\release
경로에
가서 확인한다.
Octave를
실행하고,
mexopencv
경로로
설정한 후 명령어창에
>>
mexopencv.make('opencv_path','E:\opencv\release')
를
입력하면
Mex파일이
완성된다.
Mexopencv\+cv
디렉토리를
확인하면 함수별
.mex파일이
생성된다.
(주 의)
opencv
version, cmake
version, mexopencv
및
컴파일러 버전 때문에 build 과정
중에서 에러발생이 일어나는 상황이 자주 발생할 수 있다. 호환성문제
아직 미해결
->
이를 편리하게 모두 build 해놓은
바이너리 파일을 설치할 수 있다.
Binary
file
설치해서
build하기
download binaries of OpenCV (+ opencv_contrib)
compiled using Octave's MinGW:
build_mingw_x86.7z 바이너리파일
설치
mexOpenCV
설치
Octave를
실행하고, mexopencv path로 이동후에
>> mexopencv.make(‘opencv_path’, ‘바이너리파일
경로’) 명령어로 mex파일을
만들 수 있다.
Ex) >>
mexopencv.make(‘opencv_path’,
‘E:\build_mingw_x86\install’)