[英]Why is for loop printing unexpected results?
我正在掃描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,
這是我在其仍在運行時拍攝的屏幕截圖,您可以在其中看到其計算正確。 完成后,它變成上面的圖像。
更改
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++)
{
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.