java - java中的getsubimage()函数

标签 java image image-processing

这是我的代码:

        for (int ii = 0; ii <= 17; ii++) {
        System.out.println(ii);
        if(ii == 10) continue;
        String name = String.valueOf(ii);
        File pic = new File(name + ".jpg");
        BufferedImage image = ImageIO.read(pic); 
        int w ;
        int h ;
        int x_max = 0;
        int x_min = 1000;
        int y_max = 0;
        int y_min = 1000;
        for (int i = 0; i < image.getWidth(); i++) {
            for (int j = 0; j < image.getHeight(); j++) {
                Color c = new Color(image.getRGB(i, j));
                if(c.getBlue() == 0){
                    x_max = Math.max(x_max, i);
                    x_min = Math.min(x_min, i);
                    y_max = Math.max(y_max, j);
                    y_min = Math.min(y_min, j);
                }

            }
        }

        BufferedImage imagea = image;
        image = imagea.getSubimage(x_min - 1, y_min - 1,x_max - x_min + 3 , y_max - y_min + 3);
        h = Math.abs(y_max - y_min);
        w = Math.abs(x_max - x_min);}

这是输出:

0
1
2
3
4
5
6
7
Exception in thread "main" java.awt.image.RasterFormatException: (x + width) is outside of Raster
    at sun.awt.image.ByteInterleavedRaster.createWritableChild(Unknown Source)
    at java.awt.image.BufferedImage.getSubimage(Unknown Source)
    at element.main(element.java:41)

该错误与“getsubimage”函数有关,但我不知道其原因。 该代码一直工作到第八张图片,但不起作用。 java中的“getsubimage”函数如何工作?

最佳答案

这一行:

image = imagea.getSubimage(x_min - 1, y_min - 1,x_max - x_min + 3 , y_max - y_min + 3);

假设生成的坐标距左边缘和上边缘至少偏移 1 个像素,距左边缘和下边缘至少偏移 3 个像素。不要这样想,或者确保他们会这样。

关于java - java中的getsubimage()函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27592030/

相关文章:

image - 图像列表 "modes"

python - 使用相机图像从 Pyzbar 检测 QR 码

java - 在 Java 中,像 "int"这样的原始数据类型是一个类还是一个对象?

html - 对齐多个图像(垂直居中对齐),标题沿基线对齐

jQuery 图像加载回调

image - 带有图像和文本的 Bootstrap 菜单项

python - 如何从 COCO 数据集创建蒙版图像?

java - 在 Tomcat 6 中自动化 Quartz 计划作业

java - 出错后如何执行RollBack?

java - Lucene 6.0.0 从索引中删除文档