1

我想在图像中找到空白区域(它的 xy 坐标);从那我需要在那个空白区域填充另一个图像。

为这张图片找到空白区域

4

2 回答 2

1

您想在图像中找到 WHITE 点,然后在下面尝试。我希望它会对您有所帮助,但它会返回图像中的所有 WHITE 点,而不仅仅是空白区域。

            Bitmap mBitmap = YOUR BITMAP;

            ArrayList<Point> whitePoint = new ArrayList<Point>();
            for (int i = 0; i < mBitmap.getWidth(); i++) {
                for (int j = 0; j < mBitmap.getHeight(); j++) {
                    if(mBitmap.getPixel(i, j) == Color.WHITE)
                    {
                        whitePoint.add(new Point(i, j));
                    }
                }
            }

我建议在空白区域使用 TRANSPARENT 颜色并检查 TRANSPARENT 而不是 WHITE 颜色

于 2012-10-16T06:46:29.403 回答
1

空白区域是指白色矩形吗?

我要解决的方法是每个像素(x 轴/y 轴)运行一个像素来搜索一个完全白色的像素,一旦我找到这个像素,我就会运行一个方法,从那个像素开始,验证X 轴上的一条直线上的像素和 Y 轴上的另一个像素是我要插入那里的图像的宽度和高度。如果这两条线上全是白色,那么我会在长度为 的对角线上再次运行它math.sqrt(width*width + height*height),如果全是白色,我可以在那里填充图像,如果不是,请从末尾开始继续搜索那条对角线。

虽然不是搜索白色像素,我宁愿搜索完全透明的像素(0 alpha)。我认为这对你的图像有用,但如果你碰巧有另一个图像,它有 3 条线,它们的尾巴和白色的精确长度结合在一起,它会失败。只是不要……那样做。

您实际上可以验证该矩形中的所有像素,而不是仅检查这些行,但这可能会很慢并且不适用于您的图像,因为您恰好在空白区域的底部有该高度。

于 2012-10-16T06:01:10.970 回答