image - 将图像转换为四叉树

标签 image image-processing quadtree

我需要以“通常”的方式将图像(正方形)转换为四叉树 - 将其切成四份,检查每 block 是否只有一种颜色;如果是:关闭节点,否则:重复;

有人知道它的开源程序吗?

最好是 Java,但我可以使用任何语言。

谢谢。

最佳答案

我想您可以轻松地在 OpenCV 中编写一个程序来为您完成此操作。假设您已经有一些数据结构来保存实际的树,则主函数将如下所示(我已经为灰度图像编写了它,但这只是需要对颜色重复三次的测试):

void divideAndConquer(Mat im, QuadTree &tree, int parent){
  if(parent<0) 
    return;
  double min,max;
  minMaxLoc(im,&min,&max);
  if(max-min<0.01)
    tree.addNode(parent,closed);
  else{
    tree.addNode(parent,open);
    Mat im0=Mat(im,Range(0,image.rows/2-1),Range(0,image.cols/2-1));
    Mat im1=Mat(im,Range(image.rows/2,image.rows),Range(0,image.cols/2-1));
    Mat im2=Mat(im,Range(0,image.rows/2-1),Range(image.cols/2,image.cols));
    Mat im3=Mat(im,Range(image.rows/2,image.rows),Range(image.cols/2-1,image.cols));
    divideAndConquer(im0, tree, parent/4);
    divideAndConquer(im1, tree, parent/4+1);
    divideAndConquer(im2, tree, parent/4+2);
    divideAndConquer(im3, tree, parent/4+3);
  }
}

关于image - 将图像转换为四叉树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9913615/

相关文章:

python - 查找 RGB 颜色 channel 的变化-Python

c++ - 在行星上实现四叉树地形(Geomipmapping)

c++ - 如何有效地在四叉树中存储游戏对象

图像比较 - 快速算法

c++ - 眨眼检测

math - 在哪里可以找到有关线生长算法的信息?

spatial - MX-CIF 四叉树的批量加载算法

javascript - 像图像滚动一样的谷歌地图

.net - 如何在 .NET 中添加 EXIF 信息以对图像进行地理标记?

image - 在 pytorch 中加载 csv 和图像数据集