poly2label

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

    Описание

    пример

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

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

    Примеры

    свернуть все

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

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

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

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

    Задайте координаты трех ROI в roiPositions массив ячеек. В этом примере первый информация только для чтения является треугольником, требующим координат для трех углов. Другие два 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];

    Создайте массив для идентификаторов же размера, как и roiPositions массив ячеек.

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

    Задайте значения идентификаторов меток, которые соответствуют порядку, в котором вы перечислили ROIs в roiPositions. Первый информация только для чтения является треугольником, поэтому дайте ему метку 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. The axes contains 4 objects of type image, images.roi.polygon.

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

    L = poly2label(roiPositions,roilabelID,imSize);

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

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

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

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

    свернуть все

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

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

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

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

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

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

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

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

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

    свернуть все

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

    Совет

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

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

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