【问题标题】:Converting a image to a quadtree将图像转换为四叉树
【发布时间】:2012-03-28 18:33:27
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

    标签: image image-processing quadtree


    【解决方案1】:

    我想你可以很容易地在 OpenCV 中编写一个程序来为你做这件事。如果你已经有一些数据结构来保存实际的树,那么主函数看起来像这样(我已经为灰色图像编写了它,但它只是需要对颜色重复 3 次的测试):

    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);
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-28
      • 2021-06-07
      • 2020-12-11
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 2020-08-24
      • 2011-10-26
      相关资源
      最近更新 更多