我正在研究Java中的一種方法來做一些簡單的邊緣檢測。我想在兩個像素之間取一個像素的顏色強度和另一個像素的正下方像素的差值。無論我爲該方法投入了多少門檻,我正在使用的圖片都是黑色的。我不確定我目前的方法是不是計算我需要的方法,但我無法找到我應該尋找的問題。簡單的邊緣檢測方法Java
這裏是我的方法迄今:
public void edgeDetection(double threshold)
{
Color white = new Color(1,1,1);
Color black = new Color(0,0,0);
Pixel topPixel = null;
Pixel lowerPixel = null;
double topIntensity;
double lowerIntensity;
for(int y = 0; y < this.getHeight()-1; y++){
for(int x = 0; x < this.getWidth(); x++){
topPixel = this.getPixel(x,y);
lowerPixel = this.getPixel(x,y+1);
topIntensity = (topPixel.getRed() + topPixel.getGreen() + topPixel.getBlue())/3;
lowerIntensity = (lowerPixel.getRed() + lowerPixel.getGreen() + lowerPixel.getBlue())/3;
if(Math.abs(topIntensity - lowerIntensity) < threshold)
topPixel.setColor(white);
else
topPixel.setColor(black);
}
}
}
謝謝你,我想讀的構造函數的文檔。 –