主要内容

qtdecomp

四叉树分解

描述

年代= qtdecomp (对灰度图像执行四叉树分解并返回稀疏矩阵中的四叉树结构年代.默认情况下,qtdecomp除非块中的所有元素都相等,否则将块拆分。

例子

年代= qtdecomp (阈值如果块元素的最大值减去块元素的最小值大于则拆分块阈值

年代= qtdecomp (阈值mindim将不会产生小于mindim,即使得到的块不满足阈值条件。

年代= qtdecomp (阈值, (mindimmaxdim])将不会产生小于mindim或大于maxdim.大于maxdim即使它们满足阈值条件,也会被拆分。

年代= qtdecomp (有趣的使用函数有趣的确定是否拆分一个块。

例子

全部折叠

创建一个小的样本矩阵。

I = uint8([1 1 1 1 2 3 6 6;...1 1 2 1 4 5 6 8;...1 1 1 1 7 7 7;...1 1 1 1 6 6 5 5;...20 22 20 22 1 2 3 4;...20 22 22 20 5 4 7 8;...20 22 20 20 9 12 40 12;...20 22 20 20 13 14 15 16]);

执行四叉树分解并显示结果。

S = qtdecomp(I,.05);disp(完整的(S));
4 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 2 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1

将图像读入工作区。

I = imread(“liftingbody.png”);

执行四叉树分解并在图中显示块表示。

S = qtdecomp(I,.27);blocks = repmat(uint8(0),size(S));Dim = [512 256 128 64 32 16 8 4 2 1];numblocks = length(find(S==dim));如果(numblocks > 0) values = repmat(uint8(1),[dim dim numblocks]);值(2:dim,2:dim,:) = 0;blocks = qtsetblk(blocks,S,dim,values);结束结束Blocks (end,1:end) = 1;Blocks (1:end,end) = 1;imshow(我)

图中包含一个axes对象。坐标轴对象包含一个image类型的对象。

图imshow(块,[])

图中包含一个axes对象。坐标轴对象包含一个image类型的对象。

输入参数

全部折叠

灰度图像,指定为——- - - - - -n数字矩阵。如果语法包含函数句柄,有趣的,则图像可以是函数支持的任何类。万博1manbetx

数据类型:||int16|uint8|uint16|逻辑

块均匀性的阈值,指定为[0,1]范围内的标量。

  • 如果是一流的uint8,然后qtdecomp的值乘以阈值通过255确定实际使用的阈值。

  • 如果是一流的uint8,然后qtdecomp的值乘以阈值通过65535来确定实际使用的阈值。

最小块大小,指定为正整数。mindim一定是图像大小的一个因素。

最大块大小,指定为正整数。maxdim/mindim一定是2的幂。

函数句柄,指定为句柄。函数必须接受all作为输入——- - - - - -堆叠成——- - - - - -——- - - - - -k数组,k是块的数量。函数必须返回一个逻辑k-element vector,其值为1如果应该拆分相应的块,和0否则。例如,如果k3.)是0,然后是第三个——- - - - - -块不应该被分割。

有关函数句柄的更多信息,请参见创建函数句柄

输出参数

全部折叠

四叉树结构,作为稀疏矩阵返回。如果S (k、m)非零吗(k,米)是否是分解中的一个块的左上角,块的大小由S (k、m)

数据类型:

提示

  • qtdecomp主要适用于尺寸为2的幂的正方形图像,如128 × 128或512 × 512。这些图像可以被分割,直到块小到1乘1。如果你使用qtdecomp对于一个尺寸不是2的幂的图像,在某些点上块不能被进一步分割。例如,如果一个图像是96 × 96,它可以被分为大小为48 × 48的块,然后是24 × 24、12 × 12、6 × 6,最后是3 × 3的块。除3乘3外不可能再作进一步的分割。要处理此映像,必须设置mindim到3(或3乘以2的幂);如果使用的语法包含函数,有趣的,函数必须返回0当块不能被进一步分割时。

算法

qtdecomp函数将一个正方形图像分成四个大小相等的正方形块,然后测试每个块,看它是否满足某种同质性标准。如果一个块满足这个条件,它就不再被分割。如果它不满足标准,则再次将其细分为四个块,并将测试标准应用于这些块。这个过程被反复重复,直到每个块都满足标准。结果可以有几种不同大小的块。

扩展功能

版本历史

R2006a之前介绍过

全部展开

另请参阅

|