我正在尝试创建一个程序,该程序将检测一条蓝线并将其上的所有像素涂黑,但不能将其下的所有像素涂黑。请参阅以下方法:
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/