rectToBbox

Вычислите ограничительные рамки из выходных параметров, возвращенных объектом интерфейса MATLAB для OpenCV Rect класс

    Синтаксис

    Описание

    пример

    bbox = rectToBbox(input) вычисляет значения ограничительной рамки из выходных параметров, возвращенных MATLAB® соедините интерфейсом с объектом для OpenCV Rect класс. OpenCV Rect класс создает прямоугольники на входном изображении. Эта функция сопоставляет основанную на нуле индексацию в OpenCV к индексации на основе одной в MATLAB.

    Примеры

    свернуть все

    Чертите прямоугольник на изображении при помощи предварительно созданного интерфейса MATLAB для функции OpenCV cv::rectangle. Вычислите соответствующие значения ограничительной рамки в MATLAB, чтобы использовать, чтобы обрезать область изображений.

    Добавьте интерфейс MATLAB в имена пакета OpenCV к списку импорта.

    import clib.opencv.*;
    import vision.opencv.util.*;

    Считайте изображение в рабочее пространство MATLAB.

    img = imread("highway.png");

    Создайте интерфейсные объекты для OpenCV Mat и InputOutputArray классы, чтобы сохранить входное изображение.

    [inputMat,ocvArray] = createMat(img,"InputOutput");

    Задайте прямоугольную область

    Вызовите функцию OpenCV cv::Rect2i использование MATLAB, и задает координаты и размерности для прямоугольника. Отобразите значения.

    rec = cv.Rect2i(140,60,100,100)
    rec = 
      Rect2i with properties:
    
             x: 140
             y: 60
         width: 100
        height: 100
    
    

    Чертите прямоугольник и отобразите результаты

    Задайте свойства линии использовать для рисования прямоугольника. Установите эти значения:

    • Цвет линии к красному. Чтобы установить это значение, используйте функцию OpenCV cv::Scalar.

    • Толщина линии к 2.

    • Тип линии к 4.

    • Переключите к 0.

    color = cv.Scalar(255,0,0);
    thickness = 2;
    lineType = 4;
    shift = 0;

    Чертите заданный прямоугольник на изображении при помощи функции OpenCV cv::rectangle.

    cv.rectangle(ocvArray,rec,color,thickness,lineType,shift);

    Считайте и отобразите выходное изображение.

    outputImg = getImage(ocvArray);
    figure
    imshow(outputImg)

    Figure contains an axes object. The axes object contains an object of type image.

    Вычислите ограничительную рамку

    Используйте служебную функцию rectToBbox чтобы вычислить значение ограничительной рамки из значений, возвращенных OpenCV, функционируют cv::Rect2i.

    bbox = rectToBbox(rec);

    Отобразите значения ограничительной рамки. Заметьте, что значения ограничительной рамки в рабочем пространстве MATLAB имеют индексацию на основе одну.

    bbox
    bbox = 1x4 int32 row vector
    
       141    61   100   100
    
    

    Обрежьте область в ограничительной рамке при помощи imcrop функционируйте и отобразите кадрированное изображение.

    croppedImg = imcrop(img,bbox);
    figure
    imshow(croppedImg)

    Figure contains an axes object. The axes object contains an object of type image.

    Входные параметры

    свернуть все

    Класс OpenCV для прямоугольников в виде одного из этих значений:

    • Rect__unsignedChar_ интерфейсный объект — объект интерфейса This MATLAB является представлением класса OpenCV cv::Rect_<unsigned char>.

    • Rect2d интерфейсный объект — объект интерфейса This MATLAB является представлением класса OpenCV cv::Rect_<double>.

    • Rect2f интерфейсный объект — объект интерфейса This MATLAB является представлением класса OpenCV cv::Rect_<float>.

    • Rect2i интерфейсный объект — объект интерфейса This MATLAB является представлением класса OpenCV cv::Rect_<int>.

    • Rect2i интерфейсный объект — объект интерфейса This MATLAB является представлением класса OpenCV cv::Rect_<int>.

    Выходные аргументы

    свернуть все

    Значения ограничительной рамки, возвращенные как четырехэлементный вектор-строка из формы [x y width height].

    Введенный в R2021b
    Для просмотра документации необходимо авторизоваться на сайте