Microsoft MVP성태의 닷넷 이야기
c# opencv dll파일 로드 질문 [링크 복사], [링크+제목 복사]
조회: 2956
글쓴 사람
임도진
홈페이지
첨부 파일
[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 설치 후 실행 시 발생하는 에러, 런타임 라이브러리라 속성창에 없는 사진입니다.




donaricano-btn



[최초 등록일: ]
[최종 수정일: 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)
            {

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

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

힌트라도 주시면 감사하겠습니다~!!
[손님]
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)
5094하주형11/20/20182081안녕하세요 C# using 예약어관련 질문드립니다. [1]
5093Mediaelement11/19/20183478안녕하세요. wpf Mediaelement 질문 있습니다. [3]
5092하주형11/17/20181864안녕하세요 c# 7.1책 스택관련 질문드립니다. [2]
5091아짱11/15/20182155UWP 개발중 질문이 있습니다. [3]
5090황윤하11/15/20184166c# Socket Server에 접근할 수 있는 client 개수 제한 [5]
5089문성운11/14/20182709uwp에서 TcpListener를 사용할 수 없나요? [5]
5088안중언11/10/20181996TCP 소켓 [1]파일 다운로드1
5084김광흠11/9/20182200사운드 파일 "filename.wav" 와 같은 특정 파일이 실행되는것을 감시하고 싶습니다. [3]
5083거북이11/4/20182301타입의 범위를 넘어서는 연산의 개념을 모르겠습니다. [4]
5082꾸엉11/1/20181766BCL 타입을 모아둔 곳이 있나요? [2]
5081꾸엉10/31/20181990C# 7.1 235p 질문입니다. [3]
5080WPF초보10/30/20182389[WPF] IsManipulationEnabled속성 설정시 Click이벤트 문의 [1]
5079jhp10/30/20182575이 소스에 API후킹 소스를 추가하고 싶은데 어떻게 해야될지 모르겠어요. [4]
5078꾸엉10/29/20181992C# 7.1 185~187p 질문입니다. [2]
5077윤현수10/29/20184351setup파일 설치 이후 실행이 안되는 현상 [11]
5074진우10/28/20182053C# 생성과 동시에 초기화 하는 코드 문의 [2]
5073돌고래10/27/20182187c# 공부 방향 질문 드립니다. [3]
5072엔벌잉10/24/20182587C# textbox, button질문입니다! [4]파일 다운로드1
5071엔벌잉10/23/20182597C#윈도우폼 질문입니다!! [2]
5070진우10/17/20182129Visual Studio 서비스팩과 업데이트 차이 문의 [2]
5069감자10/12/20182422빌드 구성을 재설정하는 방법이 있을까요? [1]파일 다운로드1
5068누오10/10/20182123ASP Core 2.0 에서 dll안에 있는 뷰 읽어들이는 방법? [1]
5067김정민10/5/20182091다른 윈도우가 깨지는 현상을 막을 수 있을까요 [3]
5066로니브10/4/20182460ASP.NET MVC에서 View 파일 숨기는법? 보안처리 하는법? 관련 질문.. [1]
5065키모10/1/20182058문자 질문입니다. [3]
5064로니브10/1/20182501클래스 라이브러리에서 .cshtml파일을 추가하는 방법은 없나요? [3]
1  2  3  4  5  6  7  8  9  10  11  12  13  [14]  15  ...