poly2label

Создайте матрицу метки из набора ROI

    Описание

    пример

    L = poly2label(ROIpositions,ROILabelIDs,imagesize) создает числовую матрицу метки L от видимых областей (ROIs), заданных в ROIpositions. ROILabelIDs задает числовой ID для каждого ROI в ROIpositions. imagesize задает размер выходной матрицы метки.

    L = poly2label(ROIpositions,ROILabelIDs,R) создает числовую матрицу метки где пространственный объект привязки R задает систему координат, используемую положениями ROI в ROIpositions. Функция принимает, что положения ROI находятся в мировых пределах, заданных R. ImageSize свойство R задает размер матрицы метки L.

    Примеры

    свернуть все

    Считайте изображение в рабочую область и отобразите ее.

     figure
     I = imread('baby.jpg');
     imshow(I)

    Инициализируйте переменные массива ячеек и размера изображения положения ROI. Если вы передаете poly2label значение размера, содержащее три измерения, это только использует первые два, m на n.

    numPolygon = 3;
    roiPositions = cell(numPolygon,1);
    imSize = size(I);

    Задайте координаты трех ROI в roiPositions cellArray. В этом примере первый ROI является треугольником, требуя координат для трех углов. Другие два ROI являются четырехугольниками, требуя координат для четырех углов.

    roiPositions{1} = [500 500; 250 1300; 1000 500];
    roiPositions{2} = [1500 1100; 1500 1400; 2000 1400; 2000 700];
    roiPositions{3} = [80 2600; 480 2700; 470 3000; 100 3000];

    Создайте массив для метки IDs тот же размер как roiPositions cellArray.

    roilabelID = zeros(numPolygon,1,'uint8');

    Задайте Значения идентификаторов метки, которые соответствуют порядку, в котором вы перечислили ROI в roiPositions. Первый ROI является треугольником, так дайте ему метку 1. Следующие два ROI являются оба четырехугольниками, так дайте им метку 2.

    roilabelID(1) = 1;
    roilabelID(2) = 2;
    roilabelID(3) = 2;

    Чертите эти три ROI на фигуре.

    for id = 1:numPolygon
        drawpolygon('Position',roiPositions{id});
    end

    Figure contains an axes object. The axes object contains 4 objects of type image, images.roi.polygon.

    Создайте матрицу метки из ROI. Матрица метки одного размера, m на n, как оригинальное изображение.

    L = poly2label(roiPositions,roilabelID,imSize);

    Отобразите матрицу метки, наложенную на оригинальном изображении.

    figure;
    B = labeloverlay(I,L);
    imshow(B);

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

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

    свернуть все

    Координатные векторы в виде 1 P массивом ячеек числовых координатных векторов, где P является общим количеством ROI. Каждым элементом массива ячеек является s-by-2 координатный вектор из формы [x1 y1; …; xs ys], где s является общим количеством вершин для того ROI. Каждый x, пара y задает вершину ROI. Если форма ROI уже не закрывается, poly2label функционируйте закрывает форму автоматически. Можно задать любое количество ROI.

    Типы данных: double | cell

    Метки для каждого ROI в виде числового вектора из той же длины как ROIpositions аргумент. Каждая метка в векторе соответствует ROI в связанном положении в ROIpositions cellArray.

    poly2label присваивает значение 0 ко всем фоновым пикселям в выходном изображении.

    Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

    Размер выхода помечает матрицу в виде 2-или числового вектора с 3 элементами. Если вы задаете вектор с 3 элементами, poly2label функционируйте использует только первые две размерности, m-by-n.

    Типы данных: double

    Пространственная информация о ссылке в виде imref2d объект.

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

    свернуть все

    Матрица метки, возвращенная как m-by-n матрица неотрицательных значений, тот же класс как ROIlabelIDs. Пиксели пометили 0 фон.

    Советы

    • poly2label функционируйте устанавливает пиксели, которые являются в ROI к значению метки. Для получения информации о как poly2label пиксели указателей, которые являются только частично в ROI, видят poly2mask функция.

    • Когда положения нескольких ROI перекрывают друг друга, метку ROI с самым низким индексом в ROIpositions массив ячеек перезаписывает другие ROI.

    Смотрите также

    | | | |

    Введенный в R2020b