gpt4 book ai didi

java - 关于迭代图像中每个像素的简单问题

转载 作者:行者123 更新时间:2023-11-30 04:57:28 27 4
gpt4 key购买 nike

好吧,这看起来真的很愚蠢,但请耐心听我说。一年前,我编写了一个小程序来对图像执行各种操作,现在我有点生疏了,不得不做一些隐约相似的事情。我正在查看旧的应用程序以帮助我开始,但有一件非常简单的事情我的头脑不想理解刚才的逻辑。基本上,我循环遍历图像中的每个像素以便对该位置执行某些操作,现在到底什么并不重要。这是基本思想:

for (int x = 0; x < inputImage.getWidth(); x++) {
for(int y = 0; y < inputImage.getHeight(); y++) {
*code in here*
}
}

现在我不明白的是这个。当然,嵌套 for 循环的逻辑意味着每次循环之后,x 和 y 都会递增。因此,在第一遍中,x = 0,y = 0。第二遍中,x = 1,y = 1,依此类推。这意味着您只能选择从图像左上角到右下角的对角像素,从而错过了大量像素,例如位于 x = 0、y = 1 处的像素。我知道这很简单,而且肯定会使有道理,但我现在不明白逻辑!非常感谢。

最佳答案

不,这根本不是嵌套循环的作用。 y 循环完全位于 x 循环体内(这就是嵌套的含义),因此整个 y 循环在 x 循环的每次迭代中运行。

x = 0
y = 0, y = 1, y = 2, ...
x = 1
y = 0, y = 1, y = 2, ...

如果您愿意,您正在考虑的行为(仅迭代对角线元素)可以这样实现:

for (int x = 0, int y = 0;
x < inputImage.getWidth && y < inputImage.getHeight;
x++, y++) {
// stuff
}

注意xy如何在同一个循环中递增;没有嵌套的“子循环”。 (免责声明:我已经有一段时间没有使用 Java 了,我可能把语法弄乱了一点)

关于java - 关于迭代图像中每个像素的简单问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8081870/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com