【问题标题】:Quadtree decomposition in MATLAB: qtdecomp function inputMATLAB 中的四叉树分解:qtdecomp 函数输入
【发布时间】:2016-10-31 14:51:50
【问题描述】:

有没有人有将输入函数定义为 MATLAB 中 qtdecomp 函数的阈值标准的经验?我尝试了以下方法,但没有成功:

MyFunc = @(A,threshold) std2(A)>threshold;
S = qtdecomp(Image,MyFunc,threshold); 

不知何故,对于某些阈值,只有四叉树的最左边的四分之一被划分为新的部分。这可能是qtdecomp 代码本身的错误,还是我的函数输入有问题?

详见附图。无论我选择什么阈值,我都会得到这个:

【问题讨论】:

  • 我们确实需要查看示例图像。这可能是某些图像的预期行为。你试过qtdecomp没有自定义功能吗?

标签: matlab image-processing quadtree decomposition


【解决方案1】:

问题是图像作为m x m x k 数组传递给您的匿名函数,表示图像分解为k 块。该函数必须返回一个长度为k 的向量,但std2 只查看第一个块并返回一个标量。我仍在尝试为此提出一种矢量化方法,但现在这是一个独立函数中的简单循环:

function v = Std2Func(A, threshold)
   s = size(A,3);
   v = zeros(1,s);

   for k = 1:s
      v(k) = std2(A(:,:,k))>threshold;
   end   
end

这将遍历输入数组的k 平面,将std2 应用于每个二维平面并将结果放入输出向量中。然后你只需使用新函数的句柄调用qtdecomp

S = qtdecomp(Image,@Std2Func,threshold);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    相关资源
    最近更新 更多