我有一个在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]
预先感谢,希望您能为我提供帮助
答案 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)]