2012-03-28 73 views
2

我需要按'常規'方式將圖像(方形)轉換爲四叉樹,將其切成四塊,檢查每塊中是否只有一種顏色;如果是:關閉節點,否則:重複;將圖像轉換爲四叉樹

任何人都知道它的開源程序?

最好在Java中,但我可以使用任何語言。

謝謝。

回答

1

我想你可以很容易地寫一個程序,在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); 
    } 
}