Microsoft MVP성태의 닷넷 이야기
System.AccessViolationException 보호된메모리 부분 예외처리 [링크 복사], [링크+제목 복사],
조회: 17060
글쓴 사람
alower (sky56h at gmail.com)
홈페이지
첨부 파일
 

public double searchIMG(IntPtr handle, Bitmap screen_img, Bitmap find_img)
        {
            using (Mat ScreenMat = OpenCvSharp.Extensions.BitmapConverter.ToMat(screen_img)) <<<<<<이부분에서 에러가 나는데 제 지식으로는 한계가 있는거 같습니다. 예외처리를 어떻게하면 좋을까요 ?
            using (Mat FindMat = OpenCvSharp.Extensions.BitmapConverter.ToMat(find_img))
            using (Mat res = ScreenMat.MatchTemplate(FindMat, TemplateMatchModes.CCoeffNormed))
            {
                double minval, maxval = 0;
                OpenCvSharp.Point minloc, maxloc;
                Cv2.MinMaxLoc(res, out minval, out maxval, out minloc, out maxloc);
                Console.WriteLine("찾은 이미지의 유사도 : " + maxval);
                Console.WriteLine("x : " + maxloc.X + ", y : " + maxloc.Y);
                X = maxloc.X;
                Y = maxloc.Y;
                return maxval;
            }
        }








[최초 등록일: ]
[최종 수정일: 9/19/2020]


비밀번호

댓글 작성자
 



2020-09-19 10시39분
OpenCvSharp은 내부적으로 Native 모듈인 OpenCV 라이브러리를 감싸고 포인터를 직접 다루고 있기 때문에, Access Violation 예외가 발생해 종료하는 것은 예외처리를 할 수 없습니다. ToMat을 호출해 접근하는 곳의 메모리가 그것이 요구하는 규격에 따라 유효하게 구성된 것인지 확인을 해보세요.
정성태

NoWriterDateCnt.TitleFile(s)