四叉树分解 - MATLAB

时间:2009-12-13 16:41:33

标签: matlab image-processing

如何使用MATLAB中的qtdecomp(Image,threshold)函数查找RGB图像的四叉树分解

我试过了:

Ig = rgb2gray(I);       % I is the rgb image
S = qtdecomp(I,.27);

但是我收到了这个错误:

??? Error using ==> qtdecomp>ParseInputs
A must be two-dimensional

Error in ==> qtdecomp at 88
[A, func, params, minDim, maxDim] = ParseInputs(varargin{:});

我也收到此错误:

??? Error using ==> qtdecomp>ParseInputs
Size of A is not a multiple of the maximum block dimension

有人能告诉我怎么办?

2 个答案:

答案 0 :(得分:2)

一个明显的错误......在上面的代码中,您仍然将原始RGB图像I传递给QTDECOMP函数。您必须改为通过Ig

S = qtdecomp(Ig,.27);

答案 1 :(得分:1)

原帖中的代码存在两个问题:
1)第一个错误是因为您需要将Ig(图像的灰度版本)提供给qtdecomp函数,而不是颜色版本I

S = qtdecomp(Ig, .27);

2)第二个错误是因为对于函数qtdecomp,图像的大小需要是正方形且2的幂。我建议您在图像编辑器中调整图像大小。例如,如果您的图像是1500x1300,则可能需要调整大小或将其裁剪为1024x1024,或者可能是2048x2048。 您可以使用此MATLAB命令找到图像的灰度版本的大小:

size(Ig)

要将其裁剪到左上角的1​​024x1024,您可以运行此MATLAB命令:

Ig = Ig(1:1024, 1:1024);