exponenta event banner

qtgetblk

Значения блоков в декомпозиции квадрантов

Описание

пример

[vals,r,c] = qtgetblk(I,S,dim) возвращает блоки размера dimоколо-dim из изображения I с декомпозицией quadtree S. Функция возвращает значения блоков в vals и координаты строки и столбца верхнего левого угла блоков в r и c.

[vals,idx] = qtgetblk(I,S,dim) возвращает значения блоков в vals и линейные индексы верхних левых углов блоков в idx.

Примеры

свернуть все

Создайте образец матрицы, представляющей небольшое изображение.

I = [1    1    1    1    2    3    6    6
     1    1    2    1    4    5    6    8
     1    1    1    1   10   15    7    7
     1    1    1    1   20   25    7    7
    20   22   20   22    1    2    3    4
    20   22   22   20    5    6    7    8
    20   22   20   20    9   10   11   12
    22   22   20   20   13   14   15   16];

Выполните декомпозицию изображения в квадрете, задав пороговое значение 5. qtdecomp разделяет блок, если максимальное значение элементов блока минус минимальное значение элементов блока больше порогового значения.

S = qtdecomp(I,5)
S = 
   (1,1)        4
   (5,1)        4
   (1,5)        2
   (3,5)        1
   (4,5)        1
   (5,5)        2
   (7,5)        2
   (3,6)        1
   (4,6)        1
   (1,7)        2
   (3,7)        2
   (5,7)        2
   (7,7)        2

Получите блоки размера 4 на 4 из декомпозиции квадротре. qtgetblk находит два блока такого размера.

[vals,r,c] = qtgetblk(I,S,4);

Выберите второй возвращенный блок. Отображение значений и координат (строки, столбца) верхнего левого угла блока.

blknum = 2;
blockValues = vals(:,:,blknum)
blockValues = 4×4

    20    22    20    22
    20    22    22    20
    20    22    20    20
    22    22    20    20

blockCoordinates = ['(',num2str(r(blknum)),',',num2str(c(blknum)),')']
blockCoordinates = 
'(5,1)'

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

свернуть все

Изображение в градациях серого, указанное как числовая матрица.

Типы данных: single | double | int16 | uint8 | uint16 | logical

Структура квадранта, заданная как разреженная матрица. Если S(m, n) ненулевое, то координата (m, n) - верхний левый угол блока в разложении, а размер блока задаётся S(м, н). Структуру квадротрея можно получить с помощью qtdecomp функция.

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

Размер блока, заданный как положительное целое число.

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

свернуть все

Значения блоков, возвращенные как dimоколо-dim-by-k массив, где k - число dimоколо-dim блоки в декомпозиции квадратного дерева. Если декомпозиция quadtree не содержит блоков указанного размера, то vals возвращается как пустая матрица.

Порядок блоков в vals соответствует порядку блоков по столбцам в I. Например, если vals 4 на 4 на 2, тогда vals(:,:,1) содержит значения из первого блока 4 на 4 в I, и vals(:,:,2) содержит значения из второго блока 4 на 4.

Координаты строк верхних левых углов блоков, возвращаемые в виде k-элементного столбчатого вектора положительных целых чисел, где k - число dimоколо-dim блоки в декомпозиции квадратного дерева. Если декомпозиция quadtree не содержит блоков указанного размера, то r возвращается как пустая матрица.

Координаты столбцов верхних левых углов блоков, возвращаемые в виде k-элементного вектора столбцов положительных целых чисел, где k - число dimоколо-dim блоки в декомпозиции квадратного дерева. Если декомпозиция quadtree не содержит блоков указанного размера, то c возвращается как пустая матрица.

Линейные индексы верхних левых углов блоков, возвращаемые в виде k-элементного столбчатого вектора положительных целых чисел, где k - число dimоколо-dim блоки в декомпозиции квадратного дерева. Если декомпозиция quadtree не содержит блоков указанного размера, то idx возвращается как пустая матрица.

Представлен до R2006a