【发布时间】:2012-10-06 03:41:32
【问题描述】:
我想在图像中找到空白区域(它的 x-y 坐标);从那我需要在那个空白区域填充另一个图像。
【问题讨论】:
我想在图像中找到空白区域(它的 x-y 坐标);从那我需要在那个空白区域填充另一个图像。
【问题讨论】:
空白区域是指白色矩形吗?
我要解决这个问题的方法是我会运行每个像素(x 轴/y 轴)的像素来搜索一个完全白色的像素,一旦我找到了这个像素,我就会运行一个方法,从那个开始像素,验证 X 轴上的直线上的像素和 Y 轴上的另一个像素,验证我要插入那里的图像的宽度和高度。如果这两条线上全是白色,那么我会在长度为math.sqrt(width*width + height*height) 的对角线上再次运行它,如果全是白色,我可以在那里填充图像,如果不是,请继续搜索从那条对角线的末端。
虽然我宁愿搜索完全透明的像素(0 alpha)而不是搜索白色像素。我认为这对你的图像有用,但如果你碰巧有另一个图像,它有 3 条线,它们的尾巴和白色的精确长度结合在一起,它会失败。只是不要......这样做。
您实际上可以验证该矩形中的所有像素,而不是仅检查这些行,但这可能会很慢并且不适用于您的图像,因为您恰好在空白区域的底部有那个高度。
【讨论】:
您想在图像中找到 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));
}
}
}
我建议在空白区域使用透明颜色并检查透明而不是白色
【讨论】: