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

... 16  17  18  19  20  21  22  23  24  25  26  [27]  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
5214Jang...9/4/20198122[DB 테이블의 데이터 변경에 대한 알림 처리] SQL-Server말고 MySQL은 불가능하겠죠? [1]
5213진우8/31/20197397c# 람다 변수 캡쳐 문의 [2]
5212심성보8/29/20199059Clipboard내 여러개의 이미지를 PictureBox로 불러오는 문제 [2]
5211최휘철8/24/20198241CLR20r3 관련된 윈도우 오류입니다. ㅠㅠ 도와주세요. / 아래글 관련하여 관련 파일 올려 드려요^^ [1]파일 다운로드1
5210최휘철8/23/201912162CLR20r3 관련된 윈도우 오류입니다. ㅠㅠ 도와주세요. [5]
5209세퉁8/21/20197800폰트 파일 속성 값을 가져오는 방법 질문 드립니다. [2]파일 다운로드1
5208홍길동8/19/20198596DebugDiag에서 .Net의 Stack Trace를 Windbg에서는 어떻게 볼 수 있나요? [3]
5207민성8/16/20196939네 소스 전체를 올리도록 하겠습니다. [2]파일 다운로드1
5206민성8/14/20197073전 재현 가능하다고 봤는데 다시올리도록 하겠습니다. [1]
5205miny...8/14/20197938안녕하세요 .WPF ListBox시 체크박스가 있는데 체크박스에서 체크가 되었는지 알수 있는 방법이 있을까요? [1]
5204영민8/8/201910710안녕하세요 디버깅시 콘솔창을 띠어서 볼수가 없나요? [7]
5202민성8/6/20197456WPF에서 <Application.Resources에 xaml에 있는 icon 값을 저장하고 xaml에 불러다 사용하고 싶은데요 [1]
5201김대훈8/3/20197083상속시 생성자에 대해 질문드립니다 [3]
5200농상7/30/20199768foreach로 데이터 변경 [2]
5190오리다람7/20/20197173질문드립니다. [3]
5189진우7/19/20197688C# 스레드풀 코어별 실행 문의 [2]
5188황태관7/19/20196907비주얼베이직 2019 실행 할때 마다.. [3]
5187플하7/19/20199739UWP 관련 궁금한 사항에 대해서 [1]
5186김대훈7/14/20198328박싱과 언박싱에 대해 [2]
5185농상7/13/20197190Nullable에 대해서 [1]
5184김대훈7/4/20197075저자님의 책을 다 본후에는 [2]
51837/2/20197777.NET Compact Freamwork 컨트롤러 더블버퍼링 [1]
5182wpf ...7/2/20197967wpf 질문 드립니다. [1]파일 다운로드1
51817/1/20198388DataGridview Doublebuffer 에 대해서 질문드립니다. [2]
5180김대훈6/25/20198425배열과 반복문에서 질문드립니다 [2]
5177농상6/13/20199577멀티스레드 건의 [2]
... 16  17  18  19  20  21  22  23  24  25  26  [27]  28  29  30  ...