在 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 中裁剪图像的主要内容,如果未能解决你的问题,请参考以下文章

图像裁剪,使用 Java 删除图像中不需要的白色部分 [重复]

如何在Java中裁剪调整大小的图像?

使用 Java 裁剪图像

如何使用 Java 裁剪图像而不将其加载到内存中

java中的图像裁剪

如何使用 OS Lollipop 在 Java 中为 Android 裁剪图像