J = qtsetblk(I,S,dim,vals)
replaces each dim-by-dim block in the
quadtree decomposition of image I with the corresponding block
in vals. S contains the quadtree
structure.
Perform a quadtree decomposition of the image, specifying a threshold of 5. qtdecomp splits a block if the maximum value of the block elements minus the minimum value of the block elements is greater than the threshold.
S = qtdecomp(I,5);
Get the blocks of size 4-by-4 from the quadtree decomposition.
vals = qtgetblk(I,S,4);
Calculate the mode of each 4-by-4 block, and set all values to equal the mode.
valmodes = zeros(size(vals));
for blknum = 1:size(vals,3)
valmodes(:,:,blknum) = mode(vals(:,:,blknum),'all');
end
Set the blocks in the image to the new values. The 4-by-4 blocks in the image are now homogenous.
Data Types: single | double | int16 | uint8 | uint16 | logical
S — Quadtree structure sparse matrix
Quadtree structure, specified as a sparse matrix. If
S(m,n) is
nonzero, then the coordinate (m,n) is
the upper left corner of a block in the decomposition, and the size of the
block is given by
S(m,n). You can
get a quadtree structure by using the qtdecomp function.
Data Types: double
dim — Block size positive integer
Block size, specified as a positive integer.
vals — Block values dim-by-dim-by-k
array
Block values, specified as a
dim-by-dim-by-k
array, where k is the number of
dim-by-dim blocks in the quadtree
decomposition.
The ordering of the blocks in vals must match the
column-wise order of the blocks in I. For example, if
vals is 4-by-4-by-2, then
vals(:,:,1) contains the values used to replace the
first 4-by-4 block in I, and
vals(:,:,2) contains the values used to replace the
second 4-by-4 block.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.