我正在做一个项目,并希望重新创建一个没有噪音的图像版本。例如,这是original图像,我想生成一个只显示羽毛球场线和网的图像。这是我为它写的代码:`
public SimplePicture findBC()
{
Pixel[][] pixels = img_.getPixels2D();
SimplePicture result = new SimplePicture(img_.getWidth(), img_.getHeight());
int w = img_.getWidth();
int h = img_.getHeight();
boolean bird = false;
boolean line = false;
for(int r = 0; r < h; r++)
{
for(int c = 0; c < w; c++)
{
int ori = (pixels[r][c].getRed() + pixels[r][c].getGreen() + pixels[r][c].getBlue())/3;
if(pixels[r][c].getRed() >= 200 && pixels[r][c].getGreen() >= 200 && pixels[r][c].getBlue() <= 100)
bird = true;
else
bird = false;
if(ori > 195 || ori < 30)
line = true;
else
line = false;
if(line == true)
{
Color black = new Color(0, 0, 0, 0);
result.setBasicPixel(c, r, black.getRGB());
}
else if(bird==true)
{
Color birdie = new Color(255, 255, 0);
result.setBasicPixel(c, r, birdie.getRGB());
}
else if(!bird && !line)
{
Color grey = new Color(240, 240, 240, 0);
result.setBasicPixel(c, r, grey.getRGB());
}
}
}
return result;
}`
然而,当我测试代码时,图像中的results在眩光中产生噪音并且距离较远的线条会褪色。如果我知道法院应该是什么样子,我该如何编码以让计算机知道寻找关键部件并重新创建更清晰的图像版本?拜托,谢谢你:)