exponenta event banner

qtsetblk

Установка значений блоков в декомпозиции квадратного дерева

Описание

пример

J = qtsetblk(I,S,dim,vals) заменяет каждый dimоколо-dim блок в четырехсторонней декомпозиции изображения I с соответствующим блоком в vals. S содержит структуру квадранта.

Примеры

свернуть все

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

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);

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

vals = qtgetblk(I,S,4);

Вычислите режим каждого блока 4 на 4 и установите все значения равными режиму.

valmodes = zeros(size(vals));
for blknum = 1:size(vals,3)
    valmodes(:,:,blknum) = mode(vals(:,:,blknum),'all');
end

Установите новые значения для блоков на изображении. Блоки 4 на 4 по изображению теперь однородны.

J = qtsetblk(I,S,4,valmodes)
J = 8×8

     1     1     1     1     2     3     6     6
     1     1     1     1     4     5     6     8
     1     1     1     1    10    15     7     7
     1     1     1     1    20    25     7     7
    20    20    20    20     1     2     3     4
    20    20    20    20     5     6     7     8
    20    20    20    20     9    10    11    12
    20    20    20    20    13    14    15    16

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

свернуть все

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

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

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

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

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

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

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

См. также

|

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