这个for循环的逆是什么?

时间:2018-11-16 13:18:06

标签: python for-loop shearsort

我有一个在python中剪切图像的代码,我使用正向映射来完成。但是,我的任务还需要我进行向后映射,即从输出中查找输入。我的代码如下所示,我的问题是:代码形式的for循环的反面是什么样的?

for y in range(height):
   for x in range(50, 450):
        img[int(x * By + y), int(x + y * Bx)] = img[y, x]

height是图像的高度,img是图像。 Bx和By只是因素,我选择自己的数字。 为了澄清起见,数学中的剪切公式如下:

x'= x + y·Bx

y'= x·通过+ y

我的猜测是这样,但是我得到了索引超出范围的错误:

for y in range(height):
    for x in range(50, 450):
        img[int(x * 1/By - y), int(x - y * 1/Bx)] = img[y, x]

预先感谢,希望您能为我提供帮助

1 个答案:

答案 0 :(得分:0)

您的输出与输入的尺寸不同。您不能将原始范围用于输出索引。我认为最简单的选择就是反转赋值语句:

for y in range(height):
   for x in range(50, 450):
        img_1[y, x] = img_2[int(x * By + y), int(x + y * Bx)]