如何从底部开始遍历图像中的所有像素?

问题描述 投票:0回答:1

我正在尝试创建一个程序,该程序将检测一条蓝线并将其上方的所有像素涂黑,但不遮盖下方的所有像素。参见下面的方法:

public static void findBlueLine(Picture p) {
Pixel[][] pixels = p.getPixels2D();
    for(int y = 0; y < p.getHeight(); y++) {
        for (int x = 0; x < p.getWidth(); x++) {
            if (isBlueLine(pixels[y][x])) {
                pixels[y][x].setColor(Color.BLACK);
                //for(int m = y; m < p.getHeight(); m++) {
                    //pixels[m][x].setColor(Color.BLACK);
                //}
            }
        }
    }
}

这真的给我带来了问题,谢谢!

java loops image-processing iteration pixel
1个回答
0
投票

我假设您的屏幕上有一条蓝线。这条蓝线可以在任何角度,并且可以在任何坐标处开始和结束。我假设该行不在屏幕上。

此代码应适用于所有行。

public static void findBlueLine(Picture p) {
    Pixel[][] pixels = p.getPixels2D();
    Bool aboveLine = false;

    for (int x = 0; x < p.getWidth(); x++) {
        aboveLine = false;        

        for(int y = p.getHeight-1; 0 <= y ; y--) {
            if(aboveLine == true) {
                pixels[y][x].setColor(Color.BLACK);
            }

            if (isBlueLine(pixels[y][x])) {
                aboveLine = true;
            }  
        }

    }
}
© www.soinside.com 2019 - 2024. All rights reserved.