본문 바로가기
C++/[라이브러리] OpenCV

[C++, OpenCV] imgproc, error C2589

by SeoKhan 2022. 6. 10.

한글을 출력하기 위해 UTF8을 ANSI로 변환하는 도중, 다음과 같은 에러가 났다.

 

opencv2\imgproc.hpp(4777,27): error C2589: '(': '::' 오른쪽에 잘못된 토큰이 있습니다.
opencv2\imgproc.hpp(4777): error C2144: 구문 오류: unknown-type'은(는) ')' 다음에 와야 합니다.
opencv2\imgproc.hpp(4777,1): error C2660: 'cv::LineIterator::init': 함수는 2개의 인수를 사용하지 않습니다.
opencv2\imgproc.hpp(4797,10): message : 'cv::LineIterator::init' 선언을 참조하십시오.
opencv2\imgproc.hpp(4777): error C2144: 구문 오류: unknown-type'은(는) ';' 다음에 와야 합니다.
opencv2\imgproc.hpp(4777,27): error C2143: 구문 오류: ')'이(가) '.' 앞에 없습니다.
opencv2\imgproc.hpp(4777,1): error C3928: '->': 후행 반환 형식은 괄호로 묶인 선언자 뒤에 올 수 없습니다.
opencv2\imgproc.hpp(4777,27): error C3484: 구문 오류: 반환 형식 앞에 '->'가 필요합니다.
opencv2\imgproc.hpp(4777,27): error C3613: '->' 후 반환 형식이 없습니다('int'로 간주됨).
opencv2\imgproc.hpp(4777,1): error C2082: 'pt1' 정식 매개 변수 재정의
opencv2\imgproc.hpp(4777,27): error C2146: 구문 오류: ';'이(가) 'x' 식별자 앞에 없습니다.
opencv2\imgproc.hpp(4777,1): error C2059: 구문 오류: ')'
opencv2\imgproc.hpp(4777,27): error C2065: 'x': 선언되지 않은 식별자입니다.
opencv2\imgproc.hpp(4778,27): error C2589: '(': '::' 오른쪽에 잘못된 토큰이 있습니다.
opencv2\imgproc.hpp(4778): error C2062: 예기치 않은 'unknown-type' 형식입니다.
opencv2\imgproc.hpp(4778,1): error C2059: 구문 오류: ')'
opencv2\imgproc.hpp(4779,27): error C2589: '(': '::' 오른쪽에 잘못된 토큰이 있습니다.
opencv2\imgproc.hpp(4779,1): error C2059: 구문 오류: ')'
opencv2\imgproc.hpp(4779,52): error C2589: '(': '::' 오른쪽에 잘못된 토큰이 있습니다.
opencv2\imgproc.hpp(4780,27): error C2589: '(': '::' 오른쪽에 잘못된 토큰이 있습니다.
opencv2\imgproc.hpp(4780,1): error C2059: 구문 오류: ')'
opencv2\imgproc.hpp(4780,52): error C2589: '(': '::' 오른쪽에 잘못된 토큰이 있습니다.
opencv2\imgproc.hpp(4781,1): error C2059: 구문 오류: ')'
opencv2\core\affine.hpp(512,33): error C2589: '(': '::' 오른쪽에 잘못된 토큰이 있습니다.

 

찾아본 결과 UTF8 에서 ASCI로 변환하기 위해  Windows.h를 include했는데

Windows.h 안의 max, min과 imgproc.h 안의 max, min이 충돌하여 나는 에러였다.

 

#ifdef max
#undef max
#undef min
#endif // max

 

이 코드를 Windows.h (또는 max, min이 중복으로 선언된 헤더 파일)과

imgproc.h파일의 include 사이에 넣어주면 해결된다.

 

 

 

 

 

 

참조. https://tommyhsm.tistory.com/100