使用"检测"检测jpeg图像中的对象边界。统一的背景

时间:2015-05-08 17:53:54

标签: java image

我有一个带有"看似"的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;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用具有阈值距离的颜色距离公式(如距离公式sqrt(x^2 + y^2))来消除接近但不完全相同的像素。例如:sqrt(r^2 + g^2 + b^2);