我想在图像中找到空白区域(它的x-y坐标);从那里我需要填补那个空白区域的另一个图像。
答案 0 :(得分:1)
空白区域是指白色矩形吗?
我这样做的方法是我按像素运行像素(x轴/ y轴)搜索一个完全白色的像素,一旦找到这个像素,我就会运行一个方法,从那开始像素,沿着X轴上的直线验证像素,并根据我想要插入的图像的宽度和高度的量来验证Y轴的像素。如果它们在这两条线上都是白色,那么我会在长度为math.sqrt(width*width + height*height)
的对角线上再次运行它,如果它全部为白色,我可以在那里填充图像,如果不是,请继续搜索从对角线的末端开始。
虽然不是搜索白色像素,但我宁愿搜索完全透明的像素(0 alpha)。我认为这对你的图像很有用,但是如果碰巧有另外一个图像有3条线条,它们的尾部和白色一致,那么它就会失败。只是不要......那样做。
不是只检查那些线,而是可以实际验证该矩形中的所有像素,但这可能会很慢并且不适用于您的图像,因为您碰巧在空白区域的底部有这样的高程。
答案 1 :(得分:1)
你想在图像中找到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颜色