2
我需要按'常規'方式將圖像(方形)轉換爲四叉樹,將其切成四塊,檢查每塊中是否只有一種顏色;如果是:關閉節點,否則:重複;將圖像轉換爲四叉樹
任何人都知道它的開源程序?
最好在Java中,但我可以使用任何語言。
謝謝。
我需要按'常規'方式將圖像(方形)轉換爲四叉樹,將其切成四塊,檢查每塊中是否只有一種顏色;如果是:關閉節點,否則:重複;將圖像轉換爲四叉樹
任何人都知道它的開源程序?
最好在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);
}
}