2014-09-12 185 views
-1

我正在尝试使用Java为OMR识别构建代码。当扫描图像中的对象与我使用的模板图像位置不同时,我遇到了问题。在Java中裁剪图像

为了解决这个问题,我决定在图像中放置边框,当我用边框切出图像时,我可以得到正确的值。现在,我已经手动剪切了图像,但我想用Java剪切图像。

我知道我可以从CropImageFilter类中得到一个矩形选区。但是,我怎样才能让程序知道从哪里开始?任何人都可以帮我解决这个问题吗?

+2

也许是我,但你的问题是非常不清楚我。 – 2014-09-12 15:42:17

+0

不是你的贬低选民的方式。 – 2014-09-12 15:48:06

+0

如果您想查找标记的位置,可以查看开放源代码,[wikipedia](http://en.wikipedia.org/wiki/Optical_mark_recognition)中的链接。 – 2014-09-12 15:52:07

回答

0

你可以看看CropImageFilterConstructor

CropImageFilter(int x, int y, int w, int h)

构建,它可以提取其源图像像素的绝对矩形区域由X,Y规定,W来构造CropImageFilter,和h参数。

+0

是的,我知道这一点。我想知道的是如何获得图像的x和y值。 – cbandroid 2014-09-12 15:57:52

2

如果你没有使用Java 7

后来我知道这样做的最简单的方法是:

private BufferedImage cropImage(BufferedImage source, Rectangle newDim) { 
     return source.getSubimage(0, 0, newDim.width, newDim.height); 
    }