Microsoft MVP성태의 닷넷 이야기
c# opencv dll파일 로드 질문 [링크 복사], [링크+제목 복사]
조회: 8425
글쓴 사람
임도진
홈페이지
첨부 파일
[ddddd.png]    

안녕하세요

c# 초보 개발자인데 답답한 마음에 질문 드립니다.

지금 opencv를 이용해 화면검사프로그램을 개발중인데요

문제점은 이렇습니다.

1. 개발 pc에서는 카메라 출력이 잘 되나 타 pc 파일 이동 시 에러발생
 - 에러유형: opencv_245.core.dll 파일을 로드할 수 없습니다.(dll 파일은 프로젝트 bin x86 폴더에 응용프로그램과 같이 위치해있습니다)
 * exe파일 이동시 에러 발생, dll파일도 같이 이동해도 동일 에러발생, 타 pc visual studio 설치 후 실행해도 동일 에러 발생

2. 개발pc 윈도우10 64bit, opencv, opencvsharp 2.4.5 사용 (개발프로그램 x86으로 개발)
   타 pc 윈도우10 64bit, opencv, opencvsharp 2.4.5 사용


* 구글링을 해서 찾아보니 프로젝트 속성창에서 런타임 라이브러리 설정을 md에서 mt로 바꾸라고 하던데 일단 제가 만든 프로그램 속성창에는
  런타임 라이브러리가 뜨지 않아요..

첨부파일은 타pc 설치 후 실행 시 발생하는 에러, 런타임 라이브러리라 속성창에 없는 사진입니다.








[최초 등록일: ]
[최종 수정일: 8/22/2018]


비밀번호

댓글 작성자
 



2018-08-22 01시02분
opencv_245.core.dll이 있는데 그런 오류가 발생한다면 opencv_245.dll이 참조하고 있는 다른 DLL이 없어서일 것입니다. depends.exe와 같은 도구를 이용해 opencv_245.core.dll을 보면 어떤 DLL들이 누락되어 있는지 찾아낼 수 있을 것입니다. (대부분의 경우 Visual C++ 재배포 패키지가 없기 때문입니다.)
정성태
2018-08-24 05시27분
[임도진] 정말 감사합니다.
많은 도움이 되었습니다.

한가지 더 여쭙고 싶은데요

제가 화면검사를 하는 프로그램을 개발중인데요. 현재 카메라에서 나온 이미지의 픽셀 좌표를 입력하여 픽셀의 r,g,b 로 색상을 구분하고 있습니다.
그런데 6개의 픽셀 좌표를 찍어서 구분을 하는데 제 실력이 부족하여 각 좌표값을 일일이 써서 프로그램을 만들었습니다.

try
            {
                Color color = bitmap.GetPixel(90, 40);
                this.label1.Text = $"RED : {color.R} GREEN : {color.G} BLUE : {color.B}";

                this.label13.Text = $"{color.R}";
                this.label11.Text = $"{color.G}";
                this.label9.Text = $"{color.B}";


            }
            catch (Exception)

이런식으로 6개의 코드와
string R1s = label2.Text;
            string G1s = label4.Text;
            string B1s = label6.Text;
            string R2s = label13.Text;
            string G2s = label11.Text;
            string B2s = label9.Text;
            string R3s = label19.Text;
            string G3s = label17.Text;
            string B3s = label15.Text;
            string R4s = label25.Text;
            string G4s = label23.Text;
            string B4s = label21.Text;
            string R5s = label31.Text;
            string G5s = label29.Text;
            string B5s = label27.Text;
            string R6s = label37.Text;
            string G6s = label35.Text;
            string B6s = label33.Text;

            int R1i = Int32.Parse(R1s);
            int G1i = Int32.Parse(G1s);
            int B1i = Int32.Parse(B1s);

            int R2i = Int32.Parse(R2s);
            int G2i = Int32.Parse(G2s);
            int B2i = Int32.Parse(B2s);

            int R3i = Int32.Parse(R3s);
            int G3i = Int32.Parse(G3s);
            int B3i = Int32.Parse(B3s);

            int R4i = Int32.Parse(R4s);
            int G4i = Int32.Parse(G4s);
            int B4i = Int32.Parse(B4s);

            int R5i = Int32.Parse(R5s);
            int G5i = Int32.Parse(G5s);
            int B5i = Int32.Parse(B5s);

            int R6i = Int32.Parse(R6s);
            int G6i = Int32.Parse(G6s);
            int B6i = Int32.Parse(B6s);

            if (R1i < 10 && G1i < 10 && B1i < 10 && R2i < 10 && G2i < 10 && B2i < 10 && R3i < 10 && G3i < 10 && B3i < 10 && R4i < 10 && G4i < 10 && B4i < 10 && R5i < 10 && G5i < 10 && B5i < 10 && R6i < 10 && G6i < 10 && B6i < 10)
            {

이런식의 노가다 작업을 하고있거든요..

분명 간단하게 하는 방법이 있을거같은데..잘 모르겠더라고요..

힌트라도 주시면 감사하겠습니다~!!
[guest]
2018-08-24 07시51분
GetPixel로 반환받은 Color 타입의 R, G, B 속성이 이미 byte 숫자형 타입이기 때문에 그 값을 Label.Text 속성에 넣은 다음 다시 Int32.Parse로 구해올 필요가 없습니다. 그러니까, 이후의 int R1i ~ int B6i 까지의 코드는 모두 제거해도 됩니다.

마지막의 if 문은 그렇게 하면 가독성이 없으니, Color를 인자로 받는 메서드를 만들어 거기에서 R, G, B 속성에 대해 유효성 체크하는 것을 두고 재사용하는 것이 좋습니다. 마찬가지로, Label.Text에 값을 넣을 때도 Color 값과 Label 인스턴스 3개를 입력 받아서 넣는 식으로 재사용하는 것도 좋겠고요.
정성태

1  2  3  4  5  6  7  8  9  10  [11]  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5671한예지 donator5/20/20224921델리게이트와 함수포인터 선언 시, 차이점 질문 있습니다. [3]
5670유필재5/20/20225040c#에서 현재프로그램에서 사용한 인터넷사용량 측정이 가능한가요? [3]
5669한예지 donator5/19/20223951이벤트 접근 제한자 질문 있습니다. [2]
5667ocm5/14/20224117c# 콜백 메서드 [2]
5666김호영5/13/20224702c# winform에서 svg 이미지 사용 [1]
5665장성욱5/11/20224472C# 타이머 관련 질문 [5]
5664차가워5/11/20224383아스키로 구성된 바이트를 long으로 변환 문의 [1]
5663김석규5/11/20223930VSTO를 이용해 엑셀데이터를 저장할때, 최종 입력값을 인식하지 못합니다. [2]
5662한예지 donator5/10/20223847혹시 사이트 회원가입은 어떻게 하는 것인가요? [1]
5661한예지 donator5/10/20223957for문 안에 await가 있는 경우 질문드립니다. [3]
5660tky5/10/20223888특정 작업을 멀티스레딩으로 처리 할 경우 어떤 방법이 가장 효율적일까요? [2]
5659한예지 donator5/9/20224427Task, TaskAwaiter 질문 있습니다. [3]
5658한예지 donator5/9/20224609교재 689, 690쪽(async/await) 질문입니다. [5]
5657C#초보5/8/20224017초보 단순 질문 입니다.,ㅠ [1]
5656부탁드립...5/6/2022535932bit dll 을 64bit dll 화 [2]
5655감사합니...5/5/20225517UI 스레드 관련 질문드립니다. [4]파일 다운로드1
5653고석주5/3/20224233첨부된 이미지처럼 dll 을 어떻게 추가해야 하는지 문의드립니다. [1]파일 다운로드1
5652감사합니...5/2/20223939프로그램 종료되면 리소스(관리, 비관리)는 알아서 해제 되나요? [2]
5651윤식4/26/20224209상속 구조 관련 질문드립니다. [8]
5650김기헌4/19/20224080WPF 리소스 관련 질문드립니다 [3]
5649주니어4/15/20223886ffmpeg 질문 있습니다! [2]
5648주니어개...4/13/20223821컴파일된 코드를 원시코드로 바꾸려면 어떻게해야하나요? [1]파일 다운로드1
5647장성욱4/7/20223862코어지정 CPU사용률 관련 질문 [1]
5646서형주4/6/20223868List에 여러개의 class 객체를 만들어 넣을때, 객체의 method들도 같이 생성되어 메모리를 차지하나요? [1]
5645김인태4/6/20223512윈도우즈 서버의 AD 계정 생성 조건이 있을까요? [1]
5644ㅇㅇ4/6/20224258c# 프로그램을 이용하여 리눅스상에 파일 생성이 가능한가요? [1]
1  2  3  4  5  6  7  8  9  10  [11]  12  13  14  15  ...