Это довольно легко сделать. После того, как вы обнаружите первую форму, используйте ограничительную рамку, обнаруженную для первого объекта E
, затем вставьте заполненный прямоугольник в этом месте, используя insertShape
. Убедитесь, что вы установили Opacity
в 1.0, чтобы он не смешивал пиксели с фоном в этом прямоугольнике и не выбирал цвет заполненного прямоугольника, который полностью отличается от объекта, который вы пытаетесь обнаружить. Возможно, выберите черный. Кроме того, я рекомендую вам отключать сглаживание при рисовании прямоугольника, потому что на это требуется больше времени, чтобы нарисовать фигуру с включенным. Сглаживание по существу сглаживает края для любых фигур. Поскольку вы не хотите включать информацию в этот регион, на самом деле нет необходимости в сглаживании и поэтому установите это на false
. Это делается с опцией SmoothEdges
.
Как только вы закончите заполнять фигуру, используйте эту модифицированную рамку и определите следующий объект K
. Таким образом, вам нужно только еще одну строку кода, так что это:
videoFrame=step(videoFileReader);
bbox=step(letterDetector_E,videoFrame);
%// NEW - Insert filled rectangle
videoFrame = insertShape(videoFrame, 'FilledRectangle', bbox, ...
'Opacity', 1.0, 'Color', 'black', ...
'SmoothEdges', false);
%// Now detect next shape on modified frame
bbox2=step(letterDetector_K,videoFrame);
C = vertcat(bbox,bbox2);
videoOut=insertObjectAnnotation(videoFrame, 'rectangle', C, 'E&K');
step(videoPlayer, videoOut);
Как insertShape
работы является то, что она занимает в изображении (videoFrame
в вашем случае), то можно указать FilledRectangle
флаг и рамку местоположение, которое точно совпадает с 4-элементным массивом описанным вами способом, а именно x
и y
верхнего левого угла, за которым следует ширина и высота прямоугольника. Мы разместим заполненный прямоугольник в этом месте. Затем мы указываем дополнительные параметры прямоугольника перед его рисованием, например, устанавливаем непрозрачность в 1.0, черный цвет и сглаживание отключены. Мы выводим модифицированный фрейм с вставленным прямоугольником, где я буду мутировать videoFrame
, так что для вашего кода требуется минимальное редактирование. Затем вы можете использовать videoFrame
для определения следующей формы.
Спасибо ... Это очень помогает – SREE
Мое удовольствие. Удачи! – rayryeng
Plz ... Еще одна помощь ... Я пытался найти определенные буквы при обнаружении объектов. Теперь моя проблема заключается в том, что я должен извлечь последовательные буквы этого слова. Фактически, он неправильно находит ложные срабатывания. Я хочу этого избежать. Фактические буквы, очевидно, расположены последовательно (по оси х). Есть ли способ сделать это? – SREE