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

标签 java loops image-processing iteration pixel

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

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);
                //}
            }
        }
    }
}

最佳答案

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

此代码应该适用于所有行。

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;
            }  
        }

    }
}

关于java - 如何从底部开始循环遍历图像中的所有像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59381162/

相关文章:

java - Log4j2 - 为什么我的 "Logger"元素隐藏了 "Root"记录器的内容?

java - 无法编辑项目中的特定 webdynpro java View

python - 循环获取两条用户输入并保存到全局列表

java - 我可以在不实现比较器/可比较的情况下调用 binarySearch 方法吗?

java - 如何在匿名类中引用更高的类

python - 如何在python中拼接文件夹中的图像

php - 使用 PHP 将 jpg 图像转换为 gif、png 和 bmp 格式

image-processing - OpenCV 虹膜检测霍夫变换

php - 在wordpress中获取帖子的作者ID

javascript - JS函数被调用两次?