2016-12-28 7 views
3

Я хочу слишком нарисовать контур в EmguCV 3.1.0.2504, но я получаю ошибку: «OpenCV: i < 0. Дети не могут быть оценены».Нарисуйте контур в emgucv 3.1

IInputArrayOfArrays biggestCnt = GetBiggestCountour(BinaryImage); 
Image<Gray, byte> justCountor = new Image<Gray, byte>(384, 284, new Gray(255)); 
CvInvoke.DrawContours(justCountor, biggestCnt, -1, new MCvScalar(255, 0, 0)); 

enter image description here

+0

Обычно я вижу эту ошибку, когда у меня есть список, который нельзя оценить ни о чем материальном. Что делает GetBiggestCountour()? Можете ли вы опубликовать это также? – Woot

+0

@Woot GetBiggestCountour() возвращает самый большой контур изображения. Я показал результат в изображении. –

ответ

1

изменить строку:

CvInvoke.DrawContours(justCountor, biggestCnt, -1, new MCvScalar(255, 0, 0)); 

к

justCountor.Draw(biggestCnt.ToArray(), new Gray(0), 1); 

и проблема решена.

+0

Это, кажется, системная проблема ... существует множество методов, которые, похоже, бросают странные ошибки, когда входы соответствуют требованиям. –