我正在扫描100x100像素的黑白照片,试图基于黑白坐标来打印每个x和y坐标(逐像素)。随着print语句的运行,我可以在控制台中看到预期的结果,但是一旦完成,它将开始为每个结果值生成一个值为0的值,并且仅打印x x以北的值。您能解释一下如何解决此问题吗?
public class BW
{
public static void main(String[] args) {
try {
BufferedImage original = ImageIO.read(new File("maze.jpg"));
int red;
int[][] outcome = new int[original.getHeight()][original.getWidth()];
for(int i=0; i<original.getHeight(); i++)
{
for(int j=0; j<original.getWidth(); j++)
{
red = new Color(original.getRGB(i, j)).getRed();
int pixel = 0;
if(red > 1)
{
outcome[i][j] = 255;
System.out.println("x: " + i + " y: " + j + " value: " + outcome[i][j]);
} else {
outcome[i][j] = 0;
System.out.println("x: " + i + " y: " + j + " value: " + outcome[i][j]);
}
}
}
} catch (IOException e) {e.printStackTrace();}
}
}
终端输出低于(直到x等于99,y等于99为止,y递增1,并且x从中途从98切换到99,直到
这是我在运行时拍摄的屏幕截图,您可以在其中看到其计算正确。完成后,它变成上面的图像。
答案 0 :(得分:0)
更改
for(int i=0; i<original.getWidth(); i++)
{
for(int j=0; j<original.getHeight(); j++)
{
到
for(int i=0; i<original.getHeight(); i++)
{
for(int j=0; j<original.getWidth(); j++)
{