'Emgu.CV.CvInvoke'의 타입 초기화자가 예외를 던졌습니다. 이 예외를 보시면 다음 사항을 확인해 주세요
MSVCRT를 설치하셨나요? 버전 2.0+의 경우, 번들로 제공되는 OpenCV 2.0 바이너리가 Visual Studio 2008로 빌드되므로, 의존성 문제를 해결하려면 MSVCRT 9.0 SP1을 설치해야 합니다. 버전 1.5의 경우, 번들로 제공되는 OpenCV pre1.1 바이너리가 Visual Studio 2005로 빌드되어 있으니, 의존성 문제를 해결하려면 MSVCRT 8.0 SP1을 설치해야 합니다. OpenCV dlls를 실행 디렉터리에 복사해 보셨나요? 관리되지 않은 DLL이 실행 디렉터리에 있는지 확인하세요. Emgu CV 버전 <= 2.1의 경우, 이는 다음 DLL을 의미합니다: cvXXX.dll, cvauxXXX.dll, cxcoreXXX.dll, highguiXXX.dll, opencv_ffmpegXXX.dll, mlXXX.dll andcvextern.dll 여기서 XXX는 OpenCV입니다 버전 번호. Emgu CV 버전 >= 2.2의 경우, 이는 다음과 같은 dlls를 의미합니다: opencv_calib3dXXX.dll, opencv_contribXXX.dll, opencv_coreXXX.dll, opencv_features2dXXX.dll, opencv_highguiXXX.dll, opencv_ imgprocXXX.dll, opencv_legacyXXX.dll,opencv_mlXXX.dll, opencv_objectdetectXXX.dll,opencv_videoXXX.dll 여기서 XXX는 OpenCV버전 번호입니다. 프로젝트를 시작하는 가장 좋은 방법은 다음과 같습니다: 관리되지 않은 DLL을 프로젝트 폴더로 복사하세요 프로젝트를 우클릭하고, Add->ExistingItem 버튼을 클릭한 후 모든 관리되지 않은 DLL을 선택하세요. 프로젝트에 추가하세요. 포함된 각 DLL에 대해 왼쪽 클릭한 후 "출력 디렉터리 복사" 옵션을 찾아 "최신 버전 복사"를 선택하세요 32비트 OS를 사용 중인가요? 윈도우 설치 프로그램은 32비트 윈도우에서만 사용할 수 있습니다. 64비트 운영체제를 사용 중이라면, 이 문제를 해결할 수 있는 세 가지 방법이 있습니다:
sourceforge에서 64비트 바이너리 전용 zip 패키지를 다운로드해서 프로젝트에 추가할 수 있습니다. OpenCV는 64비트 플랫폼용으로 소스에서 다시 컴파일할 수도 있습니다. Build에 대한 자세한 설명은 SVN에서 확인하세요 또는 .NET 애플리케이션을 64비트 운영체제에서도 32비트 모드로 강제로 실행할 수도 있습니다. 이를 위해 실행 프로젝트 구성 페이지에서 Platform Target을 'x86'으로 선택하세요. 의존성이 빠져 있나요? Dependency Walker를 다운로드해서 "cvextern.dll" 파일을 열어보세요. 의존성이 없는지 확인하세요.
위 모든 항목을 확인했지만 여전히 예외가 발생했습니다 이 경우에는 예제를 만들고 실행해 보시길 바랍니다. 예제를 만든 후에는 "Hello World" 프로그램을 실행해 보세요.
"Hello World"가 문제없이 실행된다면, YouProject와 비교해 설정의 차이를 찾아 수정하세요.
"Hello World"가 같은 "Emgu의 타입 초기화자"를 받으면 CV.CvInvoke'가 예외를 던졌습니다." 메시지를 확인해 토론 포럼에 신고해 보세요
EMGU의 타입 초기화. 코로나 바이러스. cvinvoke는 예외를 두었습니다. 이 예외를 보시면 다음 사항을 확인해 주세요 msvcrt를 설치하셨나요? 버전 2+, 번들로 제공되는 opencv 2 바이너리는 Visual Studio 2008을 빌드하는 데 사용되며, 의존성 문제를 해결하려면 edmsvcrt 9 SP1을 설치해야 합니다. 버전 1.5, 즉 번들로 제공되는 OpenCV pre1.1 바이너리 빌드 Visual Studio 2005의 경우, 의존성 문제를 해결하려면 edmsvcrt 8 SP1을 설치해야 합니다. 복사하신 opencv DLL 실행 디렉터리인가요? 관리되지 않은 DLL이 실행 디렉터리에 있는지 확인하세요. emgu CV 버전< = 2.1, 즉 다음 DLL:cvxxx.dll,cvauxxxx.dll,cxcorexxx를 의미합니다. DLL, highguixxx.dll, opencv_ffmpegxxx.dll, mlxxx.dll andcvextern.dll xxx는 opencv의 버전 번호입니다. EMGU CV 버전> = 2.2 이는 다음 DLL:opencv_calib3dxxx.dll, opencv_contribxxx. DLL,opencv_corexxx.dll,opencv_features2dxxx. DLL,opencv_highguixxx.dll,opencv_imgprocxxx.dll,opencv_legacyxxx. DLL,opencv_mlxxx.dll,opencv_objectdetectxxx. DLL, opencv_videoxxx.dll XXX는 opencvversion 번호입니다. 프로젝트를 만드는 가장 좋은 방법은 다음과 같습니다: 프로젝트 폴더에 비관리 DLL이 복사됨 프로젝트를 우클릭한 후 Add-> existingitem을 클릭하면 모든 관리되지 않은 DLL을 선택하세요. 프로젝트에 추가하세요. 각 DLL에 대해 왼쪽 클릭 후 "복사 및 출력 디렉터리" 옵션을 찾아 "업데이트되면 복사하기"를 선택하세요 32비트 운영체제를 사용하고 계신가요? Windows Installer는 32비트 Windows만 제공할 수 있습니다. 64비트 운영체제를 사용 중이라면, 이 문제를 해결하는 세 가지 방법이 있습니다: sourceforge에서 64비트 바이너리 전용 zip 패키지를 다운로드해서 프로젝트에 추가할 수 있습니다. 64비트 플랫폼에서 OpenCV 소스를 컴파일할 수도 있습니다. 건축 fromsvn 지침을 참조하세요 아니면 강제로 할 수도 있고요. .NET 애플리케이션은 64비트 운영체제에서도 32비트 모드로 실행됩니다. 이를 위해 실행 프로젝트의 설정 페이지에서 플랫폼 타겟을 'x86"으로 선택하세요. 혹시 빠진 의존성이 있나요? Dependent Walker를 다운로드해서 "cvextern DLL 파일"을 열어보세요. ”。 의존성이 빠진 게 있는지 확인해보세요. 위 모든 항목을 확인했지만 여전히 예외가 있습니다 이 경우에는 인스턴스를 구축하고 실행해 보세요. 인스턴스를 구축한 후에는 Hello World 프로그램을 실행해 보세요. Hello World가 문제없이 실행된다면, YouProject와 비교해서 구조적 차이를 찾아내서 해결합니다. "hello world"가 같은 "type initial value setter for'emgu"를 받는다면, 코로나 바이러스. "cvinvoke"는 예외를 던집니다. 포럼의 innerexception을 찾으려는 메시지
|