如何在没有“噪音”的情况下成功地在Java中旋转图像

时间:2014-03-29 02:20:37

标签: java image rotation

我有以下方法:

private void rotate_image(boolean right) {
    if(image != null) {
        if(right) {
            this.degrees -= 0.005;
        }
        else {
            this.degrees += 0.005;
        }

        AffineTransform transform = new AffineTransform();
        transform.rotate(this.degrees, original_image.getWidth()/2, original_image.getHeight()/2);
        AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BICUBIC);
        this.image = op.filter(original_image, null);
    }
}
  • 图片为黑白图片,表示其像素为0或255.

  • “image”和“original_image”是BufferedImage类型。

  • 我希望将它旋转一小段直到达到某个位置。

  • 旋转工作正常,但是......它用“噪音”填充我的图像 - 像素不是0或255并且在原始图像中不存在。所以它失去了一些原有的特征。

  • 我稍后需要分析每个像素,我非常感谢Java中有一种方法可以旋转我的图像,但保留了更多的原始方面。

  • 这两个图片的链接很好地展示了我的意思。它是旋转前后图像中一小部分的像素网格:

之前的图片:http://s13.postimg.org/3yvak746b/before1.png

图片之后:http://s13.postimg.org/b0t86e7s3/after1.png

那么,有什么想法吗?

提前非常感谢!

0 个答案:

没有答案