我試圖在圖像中查找白色矩形。矩形大小是固定的。這是我想出作爲尚未:在圖像中查找白色矩形
BufferedImage bImage = bufferedImage;
int height = bufferedImage.getHeight(); //~1100px
int width = bufferedImage.getWidth(); //~1600px
int neededWidth = width/2;
int neededHeight = 150;
int x = 0;
int y = 0;
boolean breaker = false;
boolean found = false;
int rgb = 0xFF00FF00;
int fx, fy;
fx = fy = 0;
JavaLogger.log.info("width, height: " + w + ", " + h);
while ((x != (width/2) || y != (height - neededHeight)) && found == false) {
for (int i = y; i - y < neededHeight + 1; i++) {
for (int j = x; j - x < neededWidth + 1; j++) { //Vareetu buut, ka +1 vajadziigs
//JavaLogger.log.info("x,y: " + j + ", " + i);
long pixel = bImage.getRGB(j, i);
if (pixel != colorWhite && pixel != -1) {
//bImage.setRGB(j, i, rgb);
//JavaLogger.log.info("x,y: " + (j+x) + ", " + (i+y));
breaker = true;
break;
} else {
//bImage.setRGB(j, i, 0xFFFFFF00);
}
//printPixelARGB(pixel);
if ((i - y == neededHeight-10) && j - x == neededWidth-10) {
JavaLogger.log.info("width, height: " + x + ", " + y + "," + j + ", " + i);
fx = j;
fy = i;
found = true;
breaker = true;
break;
}
}
if (breaker) {
breaker = false;
break;
}
}
if (x < (width/2)) {
x++;
} else {
if (y < (height - neededHeight)) {
y++;
x = 0;
} else {
break;
}
}
//JavaLogger.log.info("width, height: " + x + ", " + y);
}
if (found == true) {
for (int i = y; i < fy; i++) {
for (int j = x; j < fx; j++) {
bImage.setRGB(j, i, 0xFF00FF3F);
}
}
}
JavaLogger.log.info("width, height: " + w + ", " + h);
該工程確定,如果我需要的矩形接近(0;0)
開始時,但因爲它得到更遠,性能下降相當嚴重。我想知道,如果有什麼可以做的?
例如,該搜索了近8秒,這是相當多的。 我在想,這可以更有效地完成。也許一些blob發現?閱讀它,但我不知道如何應用它。
而且,我是新來的Java和圖像處理,所以任何幫助表示讚賞。
爲了更快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。無需發佈1,191px×1,684px的圖片!你沒有聽說過***作物嗎?!? – 2012-02-15 11:20:47
這是一個SSCCE。代碼的每一部分都與問題相關。至於圖像 - 是的。我把整個圖像展示出我的問題的範圍。如果圖像被裁剪出來,那麼看起來底部不會花費很長時間。現在很明顯,它會。 – 2012-02-15 11:32:39
*「這是一個SSCCE。」*儘可能大聲說出來,但這並不是真的。 *「代碼的每個部分都與問題相關。」*嗯......好。如何使代碼成爲'SC'的代碼部分?如果你感到困惑,它的問題不是代碼的長度。你有沒有*閱讀*鏈接? *「我把整個圖像顯示出我的問題的範圍。」*一個聰明的技巧,你可以用它來「吃你的蛋糕和吃它」(有一個小圖像下載/使用,以及一個大圖像測試與)是在後期嵌入一個小圖像,然後在運行時將其繪製成大圖像。 – 2012-02-15 11:52:50