Блокируйте значения в разложении дерева квадрантов
Создайте демонстрационную матрицу, представляющую маленькое изображение.
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)'
I
— Полутоновое изображениеПолутоновое изображение, заданное как числовая матрица.
Типы данных: single
| double
| int16
| uint8
| uint16
| logical
S
— Структура дерева квадрантовСтруктура дерева квадрантов, заданная как разреженная матрица. Если S
(m, n), является ненулевым, затем координата (m, n) является левым верхним углом блока в разложении, и размер блока дан S
m, n . Можно получить структуру дерева квадрантов при помощи qtdecomp
функция.
Типы данных: double
dim
— Размер блокаРазмер блока, заданный как положительное целое число.
vals
— Блокируйте значенияdim
- dim
- k массив | []
Блокируйте значения, возвращенные как dim
- dim
- k массив, где k является количеством dim
- dim
блоки в разложении дерева квадрантов. Если разложение дерева квадрантов не содержит блоков заданного размера, то vals
возвращен как пустая матрица.
Упорядоченное расположение блоков в vals
совпадает с постолбцовым порядком блоков в I
. Например, если vals
4 4 2, затем vals(:,:,1)
содержит значения от первого блока 4 на 4 в I
, и vals(:,:,2)
содержит значения от второго блока 4 на 4.
r
— Координаты строки левых верхних углов блоков[]
Координаты строки левых верхних углов блоков, возвращенных как k - вектор-столбец элемента положительных целых чисел, где k является количеством dim
- dim
блоки в разложении дерева квадрантов. Если разложение дерева квадрантов не содержит блоков заданного размера, то r
возвращен как пустая матрица.
c
— Координаты столбца левых верхних углов блоков[]
Координаты столбца левых верхних углов блоков, возвращенных как k - вектор-столбец элемента положительных целых чисел, где k является количеством dim
- dim
блоки в разложении дерева квадрантов. Если разложение дерева квадрантов не содержит блоков заданного размера, то c
возвращен как пустая матрица.
idx
— Линейные индексы левых верхних углов блоков[]
Линейные индексы левых верхних углов блоков, возвращенных как k - вектор-столбец элемента положительных целых чисел, где k является количеством dim
- dim
блоки в разложении дерева квадрантов. Если разложение дерева квадрантов не содержит блоков заданного размера, то idx
возвращен как пустая матрица.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.