Microsoft MVP성태의 닷넷 이야기
c# opencv dll파일 로드 질문 [링크 복사], [링크+제목 복사],
조회: 15538
글쓴 사람
임도진
홈페이지
첨부 파일
[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개를 입력 받아서 넣는 식으로 재사용하는 것도 좋겠고요.
정성태

... 76  77  78  79  80  81  82  83  84  [85]  86  87  88  89  90  ...
NoWriterDateCnt.TitleFile(s)
353정성태4/20/200617907    답변글 [답변]: 이번겨울방학때세도나를 여행하려구하는데요,,,
351오기4/18/200610706aspx [2]
350유지연4/17/200611414smartclient DB connection관련 질문 입니다. [2]파일 다운로드1
349선재빠4/17/200611400object tag를 2개 넣으면 IE가 죽어버리네요. [2]
347박찬용4/13/200611434COM+에 관한 질문입니다. [2]
345선재빠4/11/200612240Winform을 띄울 수 있는 방법이 있나요? [3]
344선재빠4/10/200613500ASP.NET 2.0에서는 VIEWASTEXT 이란 태그옵션을 지원하지 않는군요 [3]
343선재빠4/10/200612641아래와 같은 에러가 나네요.
341선재빠4/8/200612339테스트 페이지를 보면 프레임만 나오고 안에 내용이 나오지 않는군요 [1]
340김형태4/4/200611518파일서버 관련 질문드립니다.. (데브피아 답변에 이어) [2]
339조남정4/4/200611680post 주소 읽어오기 [1]
338장두헌4/4/200613255SDK PlatForm 다시 질문 - 데브피아의 내용 [1]
337강완모4/3/200613566Cab파일이 아닌 설치용 파일로 OCX들 설치하기... [1]
335비니3/23/200614474밑에 Smart Client에 대해서 질문했던 초보입니다.. TreeView컨트롤은 보이는데 안에 내용이 안보여요. [1]
336비니3/24/200612424    답변글 [재질문]:자꾸 죄송합니다...링크페이지로 이동을 안해요.... [1]
334비니3/23/200612127Smart Client강의 따라해보다가 xml에서 활성스키마는 <Tree>,<L> 요소는 지원하지 않는다고 나와요.ㅠㅠ [1]
332정준명3/21/200612177[자문자답] VS.NET에서 COM을 참조했는데, 강력한 서명이 없다고 사용불가네요.
333정성태3/22/200610667    답변글 [답변]: [자문자답] VS.NET에서 COM을 참조했는데, 강력한 서명이 없다고 사용불가네요. [1]
330심현철3/3/200613797[질문] VS2005에서 C#으로 개발한 DLL을 Javascript에서 접근할 수 없습니다. (ActiveX with C#) [2]
329권인성2/27/200611995스마트클라이언트(clickonce) 버전관리 [1]
327권인성2/24/200611586clickonce를 통해 설치 및 업데이트하려고 하는데요...보안때문에요..
331정성태3/12/200612666    답변글 [답변]: clickonce를 통해 설치 및 업데이트하려고 하는데요...보안때문에요..
325권인성2/23/200611165SETUP 및 배포관련 [1]
326권인성2/23/200610645    답변글 [답변]: 한가지만 더 질문할게요.... [1]
323정보문2/21/200611020메일 내용에서 한글이 깨집니다. [1]파일 다운로드1
321셈토2/18/200610849SPOOL --> EMF --> TEXTOUT [1]
... 76  77  78  79  80  81  82  83  84  [85]  86  87  88  89  90  ...