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

... 16  17  18  [19]  20  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
5072엔벌잉10/24/20183769C# textbox, button질문입니다! [4]파일 다운로드1
5071엔벌잉10/23/20183892C#윈도우폼 질문입니다!! [2]
5070진우10/17/20183331Visual Studio 서비스팩과 업데이트 차이 문의 [2]
5069감자10/12/20183763빌드 구성을 재설정하는 방법이 있을까요? [1]파일 다운로드1
5068누오10/10/20183392ASP Core 2.0 에서 dll안에 있는 뷰 읽어들이는 방법? [1]
5067김정민10/5/20183464다른 윈도우가 깨지는 현상을 막을 수 있을까요 [3]
5066로니브10/4/20183703ASP.NET MVC에서 View 파일 숨기는법? 보안처리 하는법? 관련 질문.. [1]
5065키모10/1/20183436문자 질문입니다. [3]
5064로니브10/1/20183942클래스 라이브러리에서 .cshtml파일을 추가하는 방법은 없나요? [3]
5063진우9/28/20183377ADO.net 과 Entity Framework 차이 문의 [2]
5062테스트9/27/20183110C# import file 의 구조체 배열 선언 및 호출에 대해 문의. [3]
5061안녕하세요9/13/20183599c# 프로그래밍 관련 문의 [1]
5060임민재9/8/20183467c# install 파일 생성 시 문제가 발생하였습니다 [1]파일 다운로드1
50599/7/20183253Winform TextBox 포커스 유지하는 방법 질문 [파일첨부] [1]파일 다운로드1
50589/5/20185245Winform TextBox 포커스 유지하는 방법 질문 [3]
5056박종윤8/30/20184781c# dll을 C++에서 사용 시 event 호출 [4]파일 다운로드1
5055초보자8/29/20184120asp.net 에서 다른 서버의 iis를 stop하는 batch file을 실행시키는데 동작하지 않습니다. [5]
5054사도신8/29/20183620[wpf] textbox insert overite 모드시에 [4]파일 다운로드1
5053엿장수8/26/20183379directshow filter 에서의 IMediaSample 의 시간에대한질문입니다 [1]
5052오명현8/26/20183993Tcp소켓 실습 Exeption 도와주세요! [4]파일 다운로드1
5049오명현8/23/20183406책 477페이지 내용 중 이해가 안가는 부분이 있어 질문드립니다. [1]
5048오명현8/23/20183233포트 관련 질문 하나더 있습니다. [1]
5047오명현8/22/20183852포트가 없을 경우를 가정한 내용에 대해 질문이 있습니다. 책468p. [1]
5046엿장수8/22/20183587다이렉트쇼 필터 추가하는데 [2]
5045임도진8/22/20184210c# opencv dll파일 로드 질문 [3]파일 다운로드1
5044엿장수8/20/20183630graphedit 에 등록되어있는 필터를 가져와서 사용하는방법을 알고싶습니다 [2]
... 16  17  18  [19]  20  21  22  23  24  25  26  27  28  29  30  ...