Emgu CV 3.1을 사용한 올바른 메모리 관리 방법

내 배경은 C ++이고 OpenCV를 사용하는 내 앱 중 하나를 EmguCV를 사용하는 C # 앱으로 번역하려고했습니다. EmguCV 문서와 Wiki는 물론 StackOverflow Q / A를 가능한 한 깊이있게 읽었으며 일부 기본 문제를 해결하는 데 운이 없었습니다. 이 시점에서 저는 EmguCV에 대해 생각하는 방식이 근본적으로 결함이 있는지 궁금합니다.

나는 EmguCV이하자의 말에 대한 C ++ 라이브러리에 대한 인터페이스를 제공하는 경우가 있다는 인상이었다 FloodFill사용 CvInvoke.FloodFill(IInputOutputArray, IInputOutputArray, ...)이 복귀한다는 점에 자체 메모리 관리를 돌봐 아래, IInputOutputArrayS (내 경우 A의가 Mat) 모든 알아서입니다. 그러나 실제로 CvInvoke.FloodFill는 dll 내에서 예외로 인해 호출이 실패합니다.

이것이 내가 가진 것입니다.

int i = ...
int j = ...
int intensity = ...
int height = img.Rows;
int width = img.Cols;
Mat outputMask = new Mat(height + 2, width + 2, DepthType.Cv8U, 1);
Rectangle dummy = new Rectangle();
CvInvoke.FloodFill(img, outputMask, new Point(i, j), new MCvScalar(255), out dummy, new MCvScalar(intensity), new MCvScalar(intensity), Connectivity.EightConnected, FloodFillType.MaskOnly);

그러나 도움이되지 않는 예외 설명으로 호출이 실패합니다. 내가 사용하고 GCHandle할당하고 다른 방법에 대한 고정하면 원시 데이터 아래에 액세스 할 수 있지만, 저는 믿습니다 CvInvoke.FloodFill일부 지역에서 호출 할 때 안전합니다 Mat들.

내 질문은 내가 C ++ 및 OpenCV에 대한 내 배경을 고려할 때 EmguCV가 사용되어야하는 방식을 완전히 벗어 났는지 여부입니다. 그렇다면 그러한 함수를 호출하는 올바른 방법은 무엇입니까?

이것은 EmguCV 3.1 FloodFill에서 동일한 문제가 발생할 수있는 모든 사람을위한 것입니다. 꽤 오랜 시간 동안 내 코드를 디버깅 한 후 EmguCV 3.1 구현 CvInvoke.FloodFill이 버그가 있다고 확신합니다 . FloodFillType.MaskOnly플래그를 사용하여 해당 메서드에서 마스크를 가져올 수있는 방법이 없습니다 .

대신에 나는 사이의 값을 가지고 내 원래 이미지를 편집 결국 0하고 254, 다음의 채우기 값을 사용하여 일반 플러드 필을했다 255. 그런 다음 원본 이미지에서 Image.InRange()모든 255(채워진) 픽셀 을 분리 하는 방법을 사용했습니다 . EmguCV 팀에 버그를보고하고 어떤 일이 발생하는지 확인하겠습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

GCHandle.Alloc ()을 사용하여 고정 된 메모리에 액세스하고 조작하는 올바른 방법은 무엇입니까?

분류에서Dev

Swift에서 statusBarStyle을 관리하는 올바른 방법은 무엇입니까?

분류에서Dev

Python 및 Z3 : 정수 및 부동, 올바른 방법으로 관리하는 방법?

분류에서Dev

emgu cv로 불필요한 줄을 제거하는 방법

분류에서Dev

Content Negotiation을 통한 SpringBoot / Kotlin 및 버전 관리 : 올바른 접근 방식?

분류에서Dev

React에서 컴포넌트 기능을 관리하는 올바른 방법

분류에서Dev

OAuth2에 대한 사용자 세션을 관리하는 올바른 방법

분류에서Dev

CUDA에서 __constant__ 메모리를 사용하는 올바른 방법?

분류에서Dev

디렉토리의 내용을 삭제하는 올바른 방법

분류에서Dev

Rails 3는 유틸리티 방법을 만들기위한 올바른 위치

분류에서Dev

emgu cv를 사용하여 C #에서 reprojectImageTo3D 메서드의 X, Y 및 Z 값을 반환합니다.

분류에서Dev

모바일에서 사용자 에이전트에 대한 메타 리디렉션을 사용하는 방법

분류에서Dev

제한적인 방화벽 규칙을 사용하여 SSL을 통한 FTP를 처리하는 올바른 방법은 무엇입니까?

분류에서Dev

논리 연산자를 사용하는 올바른 방법

분류에서Dev

C #의 Emgu cv를 사용한 Visual Studio의 비디오 처리

분류에서Dev

Google Cloud Storage로 사용자 권한을 처리하는 올바른 방법?

분류에서Dev

관리자 권한을 사용하여 파일을 저장하는 방법 (메모장에서)?

분류에서Dev

Prism을 사용할 때 모듈 의존성을 관리하는 올바른 방법은 무엇입니까?

분류에서Dev

올바른 메모리 크기를 찾는 방법

분류에서Dev

NuGet 패키지 관리자 콘솔을 사용하여 C # 용 EMGU OpenCV 설치

분류에서Dev

메모리 편집 : 올바른 주소를 얻을 수 없음 (3 오프셋)

분류에서Dev

고유 한 NULL 값을 처리하는 올바른 방법

분류에서Dev

Bootstrap 3 그리드 속성을 올바르게 사용하는 방법

분류에서Dev

Hibernate jpql 쿼리 올바른 사용법

분류에서Dev

올바른 Dafny 방법을위한 Z3 모델

분류에서Dev

GTK3에서 메모리를 올바르게 관리하는 방법은 무엇입니까?

분류에서Dev

OpenCV cv :: Mat.at 함수를 사용할 때 올바른 유형 이름을 사용하는 방법

분류에서Dev

malloc ()을 사용하여 메모리를 올바르게 할당하는 방법을 이해하기 어려움

분류에서Dev

Django-사용자 지정 인증 및 올바른 관리자 사용 방법

Related 관련 기사

  1. 1

    GCHandle.Alloc ()을 사용하여 고정 된 메모리에 액세스하고 조작하는 올바른 방법은 무엇입니까?

  2. 2

    Swift에서 statusBarStyle을 관리하는 올바른 방법은 무엇입니까?

  3. 3

    Python 및 Z3 : 정수 및 부동, 올바른 방법으로 관리하는 방법?

  4. 4

    emgu cv로 불필요한 줄을 제거하는 방법

  5. 5

    Content Negotiation을 통한 SpringBoot / Kotlin 및 버전 관리 : 올바른 접근 방식?

  6. 6

    React에서 컴포넌트 기능을 관리하는 올바른 방법

  7. 7

    OAuth2에 대한 사용자 세션을 관리하는 올바른 방법

  8. 8

    CUDA에서 __constant__ 메모리를 사용하는 올바른 방법?

  9. 9

    디렉토리의 내용을 삭제하는 올바른 방법

  10. 10

    Rails 3는 유틸리티 방법을 만들기위한 올바른 위치

  11. 11

    emgu cv를 사용하여 C #에서 reprojectImageTo3D 메서드의 X, Y 및 Z 값을 반환합니다.

  12. 12

    모바일에서 사용자 에이전트에 대한 메타 리디렉션을 사용하는 방법

  13. 13

    제한적인 방화벽 규칙을 사용하여 SSL을 통한 FTP를 처리하는 올바른 방법은 무엇입니까?

  14. 14

    논리 연산자를 사용하는 올바른 방법

  15. 15

    C #의 Emgu cv를 사용한 Visual Studio의 비디오 처리

  16. 16

    Google Cloud Storage로 사용자 권한을 처리하는 올바른 방법?

  17. 17

    관리자 권한을 사용하여 파일을 저장하는 방법 (메모장에서)?

  18. 18

    Prism을 사용할 때 모듈 의존성을 관리하는 올바른 방법은 무엇입니까?

  19. 19

    올바른 메모리 크기를 찾는 방법

  20. 20

    NuGet 패키지 관리자 콘솔을 사용하여 C # 용 EMGU OpenCV 설치

  21. 21

    메모리 편집 : 올바른 주소를 얻을 수 없음 (3 오프셋)

  22. 22

    고유 한 NULL 값을 처리하는 올바른 방법

  23. 23

    Bootstrap 3 그리드 속성을 올바르게 사용하는 방법

  24. 24

    Hibernate jpql 쿼리 올바른 사용법

  25. 25

    올바른 Dafny 방법을위한 Z3 모델

  26. 26

    GTK3에서 메모리를 올바르게 관리하는 방법은 무엇입니까?

  27. 27

    OpenCV cv :: Mat.at 함수를 사용할 때 올바른 유형 이름을 사용하는 방법

  28. 28

    malloc ()을 사용하여 메모리를 올바르게 할당하는 방법을 이해하기 어려움

  29. 29

    Django-사용자 지정 인증 및 올바른 관리자 사용 방법

뜨겁다태그

보관