'OpenCV'에 해당되는 글 4건

  1. 2018.06.26 OpenCV 3.41을 Embarcadero/Borland C++ Builder 에서 사용하기 (64bit, CUDA 포함) 1
  2. 2015.06.24 OpenCV warning C4819 current code page (949)
  3. 2015.06.10 OpenCV 3.0 extra module C2589: '(': token not valid to the right error
  4. 2015.05.07 E2140 Declaration is not allowed here
OpenCV Korea에 올린글


C++ Builder에서 OpenCV 계속 사용해오고 있습니다
OpenCV 버전 바뀔때마다 새로 설정하고 컴파일하고 에러잡고...
이 글 보시는 C++ Builder 사용자분들은
C#으로 가서 NuGet 몇번 클릭으로 OpenCV 사용환경 뚝딱 만들어지는 걸 보시면....

그래서 저도 C# 학습중입니다~~

아래 링크는,
64bit 전용이고, VS 2015 기준, CUDA, Extra module, NonFree 모두 포함했습니다
CUDA는 8.0입니다. 9.x 아닙니다
9.x가 아직 VS 지원하지 않습니다.
이걸로 올여름 OpenCV v4.0이 나올때까지 사용하시길 바랍니다

사용방법은,
환경은,
INC = 설치폴더/sources/include/
LIB = 설치폴더/build-contrib/lib/

.cpp 앞쪽에
#pragma comment (lib, "_opencv_core341d.lib")
이렇게 해주시면 됩니다

VC용은 opencv_core341d.lib,
BC용은 _opencv_core341d.lib,
이렇게 앞에 "_" 붙여서 구분해서 사용하고 있습니다

그리고,
opencv2/opencv_modules.hpp 내에,
//#define HAVE_OPENCV_FLANN
이거 해주셔야 링크에러 없어집니다.
즉, Flann 포기해야 합니다
해결방법 아시는 분은 공유부탁드립니다

컴파일된 OpenCV341 :




opencv2/core/mat.hpp(1965): 

warning C4819: 

The file contains a character that cannot be represented in the current code page (949).

Save the file in Unicode format to prevent data loss



Solution: 

File Save As...

Unicode UTF-8 with signature Codepage 65001


http://answers.opencv.org/question/62107/erfiltercpp-nfa-method/

OpenCV v3.0 컴파일 진행중에...

OpenCV\opencv_contrib\modules\text\src\erfilter.cpp  파일에서,

p = std::numeric_limits<double>::min();


C2589: '(': token not valid to the right '::'

이런 에러가 나오고 멈춘다.


http://answers.opencv.org/question/62107/erfiltercpp-nfa-method/

min() 이 부분이 

minwindef.h
#define min(a,b)            (((a) < (b)) ? (a) : (b))

위와 같이 연결되니까, 당연히 (a,b)가 없다고 에러가 나올수 밖에.


Solution :

(1) OpenCV\opencv_contrib\modules\text\src\precomp.hpp 파일안에,

// added by Michael : 2015-06-10

#if defined WIN32 || defined WINCE

    #if !defined _WIN32_WINNT

        #ifdef HAVE_MSMF

            #define _WIN32_WINNT 0x0600 // Windows Vista

        #else

            #define _WIN32_WINNT 0x0500 // Windows 2000

        #endif

    #endif


    #include <windows.h>

    #undef small

    #undef min

    #undef max

    #undef abs

#endif

제일 아래쪽에 위 코드 추가한다.
즉, window.h 추가하고나서, #undef min 을 해버리면 된다.



(2) 번째 방법은, 
#NOMINMAX
#include <windows.h>

windows.h 추가하기 전에 #NOMINMAX 해버리면, min, max 정의하지 않으므로 OK


-끝.

OpenCV GOCR 추가하는 중에,

barcode.c

1229 라인 : char *code=0; int cpos=0;

E2140 Declaration is not allowed here

이런 에러가 발생


원인 : 확장자가 c 이므로 생기는 문제

해결 : Project -> Options -> C++ Compiler 들어가서,

Force C++ compile 를 true로 바꾸어 주어야 한다.

1 

글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!