在 Java 中裁剪图像
Posted
技术标签:
【中文标题】在 Java 中裁剪图像【英文标题】:Cropping Images in Java 【发布时间】:2014-09-12 15:36:06 【问题描述】:我正在尝试使用 Java 构建用于 OMR 识别的代码。当扫描图像中的对象与我使用的模板图像的位置不同时,我遇到了问题。
为了解决这个问题,我决定在图像中放置边框,当我使用边框剪切图像时,我可以获得正确的值。现在为此我一直在手动剪切图像,但我也想使用 Java 剪切图像。
我知道我可以从CropImageFilter
类中获得一个矩形选择。但是我怎样才能让程序知道它需要从哪里开始呢?谁能帮我解决这个问题?
【问题讨论】:
也许是我,但你的问题我不清楚。 顺便说一句,不是你的反对者。 如果你想找到标记的位置,不妨看看开源,链接在wikipedia。 是的,我知道我的问题有点不清楚。我无法正确地构图。我真正需要的是图像的第一个非白点的像素。有没有办法做到这一点? 您可以编辑您的问题并添加该信息 【参考方案1】:如果您使用的不是 Java 7
那么我知道的最简单的方法是:
private BufferedImage cropImage(BufferedImage source, Rectangle newDim)
return source.getSubimage(0, 0, newDim.width, newDim.height);
【讨论】:
【参考方案2】:你可以看看CropImageFilter
的Constructor:
CropImageFilter(int x, int y, int w, int h)
构造一个 CropImageFilter,从 x、y、w 和 h 参数指定的源图像中提取像素的绝对矩形区域。
【讨论】:
是的,我知道这一点。我想知道的是如何获取图像的 x 和 y 值。以上是关于在 Java 中裁剪图像的主要内容,如果未能解决你的问题,请参考以下文章