Нет ли способа извлечь или отобразить отверстия, отбрасывая внешние контуры?
Я могу отображать только внешние контуры, используя CV_RETR_EXTERNAL, но, похоже, нет возможности отображать только внутренние контуры (отверстия).
Нет ли способа извлечь или отобразить отверстия, отбрасывая внешние контуры?
Я могу отображать только внешние контуры, используя CV_RETR_EXTERNAL, но, похоже, нет возможности отображать только внутренние контуры (отверстия).
Вы можете использовать что-то вроде этого с интерфейсом C:
cvFindContours(tmp, storage, &srcSeq, sizeof(CvContour),
CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE);
while (srcSeq)
{
if (CV_IS_SEQ_HOLE(srcSeq))
{
// do something with the hole
}
srcSeq = srcSeq->h_next;
}
Если вы используете интерфейс C++, вам придется использовать параметр иерархии из FindContours(), чтобы увидеть, является ли контур отверстием.