为什么这个循环不能正常工作?
Why isn't this loop working properly?
基本上我是在尝试重新排列图像中的某些像素。要重新排列的像素存储在两个名为 xpixels 和 ypixels 的列表中,其中一对对应于原始图像中要重新排列的像素坐标。但是,我的功能只是重新排列 y 轴上的像素,并且仅针对第一列。我不太确定为什么会这样,只能认为由于某种原因没有正确处理外循环,或者只是我的逻辑错误。任何帮助将不胜感激。
for i in range(x1, x2): #range of x coordinates in original image
for j in range(y1, y2): #range of y coordinates in original image
if ycounter >= len(ypixels):
break
else:
#pixmap is a pixelaccess object containing image data
pixmap[i, j]=pixmap[i, ypixels[ycounter]] #this shuffles the first y column
ycounter=ycounter+1
我不完全确定这段代码在做什么,但我想您需要在每次外循环迭代开始时重置 ycounter
的值。
我仍在努力弄清楚你的问题是什么,但我试图将其形象化:
pixmap = [[0 for x in range(5)] for x in range(5)]
for i in range(5):
for j in range(5):
pixmap[i][j] = '1'
for i in range(5):
pixmap[j][i] = '0'
print "Original Matrix:"
for i in range(5):
print pixmap[i]
def rearrange_funct(oldPos,newPos):
original_posX, original_posY = oldPos
rearrange_posX, rearrange_posY = newPos
oldContent = pixmap[original_posX][original_posY]
pixmap[original_posX][original_posY] = pixmap[rearrange_posX][rearrange_posY]
pixmap[rearrange_posX][rearrange_posY] = oldContent
oldPixelPositions = [(0,0),(0,1),(0,2),(0,3),(0,4)]
newPixelPositions = [(4,0),(4,1),(4,2),(4,3),(4,4)]
for x in range(len(oldPixelPositions)):
rearrange_funct(oldPixelPositions[x],newPixelPositions[x])
print "Rearranged Matrix:"
for i in range(5):
print pixmap[i]
这就是您要实现的目标吗?
基本上我是在尝试重新排列图像中的某些像素。要重新排列的像素存储在两个名为 xpixels 和 ypixels 的列表中,其中一对对应于原始图像中要重新排列的像素坐标。但是,我的功能只是重新排列 y 轴上的像素,并且仅针对第一列。我不太确定为什么会这样,只能认为由于某种原因没有正确处理外循环,或者只是我的逻辑错误。任何帮助将不胜感激。
for i in range(x1, x2): #range of x coordinates in original image
for j in range(y1, y2): #range of y coordinates in original image
if ycounter >= len(ypixels):
break
else:
#pixmap is a pixelaccess object containing image data
pixmap[i, j]=pixmap[i, ypixels[ycounter]] #this shuffles the first y column
ycounter=ycounter+1
我不完全确定这段代码在做什么,但我想您需要在每次外循环迭代开始时重置 ycounter
的值。
我仍在努力弄清楚你的问题是什么,但我试图将其形象化:
pixmap = [[0 for x in range(5)] for x in range(5)]
for i in range(5):
for j in range(5):
pixmap[i][j] = '1'
for i in range(5):
pixmap[j][i] = '0'
print "Original Matrix:"
for i in range(5):
print pixmap[i]
def rearrange_funct(oldPos,newPos):
original_posX, original_posY = oldPos
rearrange_posX, rearrange_posY = newPos
oldContent = pixmap[original_posX][original_posY]
pixmap[original_posX][original_posY] = pixmap[rearrange_posX][rearrange_posY]
pixmap[rearrange_posX][rearrange_posY] = oldContent
oldPixelPositions = [(0,0),(0,1),(0,2),(0,3),(0,4)]
newPixelPositions = [(4,0),(4,1),(4,2),(4,3),(4,4)]
for x in range(len(oldPixelPositions)):
rearrange_funct(oldPixelPositions[x],newPixelPositions[x])
print "Rearranged Matrix:"
for i in range(5):
print pixmap[i]
这就是您要实现的目标吗?