VS2015, EmguCV 3 및 VB를 사용 중이며 일부 C++ 코드를 변환하려고합니다.OpenCV Mat을 배열로 사용 : VB 대 C++
내가 전체 here에 주어진 몇 가지 객체 지향 코드를 사용하려고 해요 C++
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
findContours(bw, contours, hierarchy, CV_RETR_LIST, CV_CHAIN_APPROX_NONE);
for (size_t i = 0; i < contours.size(); ++i)
{...}
. 기본적으로 코드는 객체가 이미지에서 지향하는 각도를 알려줍니다. 불행하게도 그것은 C++ 코드이며 VB 개발자의 두뇌는 C++ 구문에 따라 폭발 할 수 있습니다. 내 스크린을 다시 청소할 필요가 없다면 도움이 될 것입니다. 폭발물은이 특별한 경우에 vector<vector<point> > contours;
이었고 나의 질문은 그것을 어떻게 번역 할 것인가에 관한 것입니다.
VB
Imports Emgu.CV
Imports Emgu.CV.Structure
...
contours = New Mat
hierarchy = New Mat
CvInvoke.FindContours(m, contours, hierarchy, CvEnum.RetrType.List, CvEnum.ChainApproxMethod.ChainApproxNone)
을 나는이 FindContours
가 image As IInputOutputArray, contours As IOutputArray, hierarchy As IOutputArray
소요 주장 EmguCV 3을 사용하고 있습니다. 그래서 나는 3 마리의 매트를 제공 할 수 있다고 생각했습니다. m이 이전에 성공적으로 처리되었으므로 (예 : 임계 값과 함께) m에 만족합니다. 등고선 및 계층 구조가 문제가 될 수 있습니다. 나는이 코드를 실행하면, 내가 처리되지 않은 예외가 :
이것은 내가 Emgu가 처리 할 것으로 예상 한 것이지만 내가 OpenCV의에 잘못된 유형을 통과 한 제안 할 것으로 보인다. 그러나 나는 단서가 없다. 어떤 도움이 필요합니까?
이 컨텍스트에서 C++'<'는 VB에서'('VB''는 대략적으로 배열을 말하는 반면에 Emgu는''VectorOfVectorOfPoint''라는 타입을 구현한다고 밝혀졌습니다. 'Mat' 대신에'VectorOfVectorOfPoint'와 같은 계층 구조를 사용하면, 이제는 내 코드가 적어도 오류없이 실행되어 진행됩니다. ;-) – Nobody