如何使用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
有人能告诉我怎么办?
答案 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)
要将其裁剪到左上角的1024x1024,您可以运行此MATLAB命令:
Ig = Ig(1:1024, 1:1024);