我有一个带有"看似"的Jpeg图像。统一的背景和其中的实际对象。我想裁剪图像以仅提取对象。 我开始使用以下代码,我试图在左侧找到(x,y)以开始裁剪。
我发现图像的左下角有(0,0)坐标。我正在循环并试图找出颜色变化的确切点。
问题出在第一次迭代过程中:当x = 0且y递增时,尽管颜色没有变化,但它为少数像素提供了不同的RGB值。(如像素240,241,242)
BufferedImage bf =ImageIO.read.file(imagePath);
for(int x= 0;x<bf.getWidth();x++)
{
for(int y=0; j<bf.getHeight();y++)
{
int color = bf.RGB(x,y);
int adjacentColor = bf.(x,y+1);
if(color !=adjacentColor)
{
LeftBoundaryPixels[count]=y;
count++;
break;
}
}
}
答案 0 :(得分:0)
您可以使用具有阈值距离的颜色距离公式(如距离公式sqrt(x^2 + y^2)
)来消除接近但不完全相同的像素。例如:sqrt(r^2 + g^2 + b^2);
。