
Python的嵌套循环实现图像的逆时针旋转90度,不知道哪里出问题了
关注【以下回答由 GPT 生成】
问题原因:
这个错误是由于旋转图像时,计算像素点位置的公式有误导致的。在逆时针旋转图像时,新图像的宽度和高度需要互换,而且在putpixel()函数中,像素点的坐标也需要进行调整。
解决方案:
在代码中,需要将旋转后的宽度和高度互换,并且在putpixel()函数中,像素点的坐标也需要进行调整。
以下是修正后的代码:
import PIL.Image
from PIL import Image
def rotate_image(im, orient='CCW'):
width, height = im.size
im_new = PIL.Image.new(im.mode, (height, width)) # 将图像的宽度和高度互换
for i in range(0, width):
for j in range(0, height):
pix = im.getpixel((i, j))
if orient == 'CCW':
im_new.putpixel((height-1-j, i), pix) # 调整像素点的坐标
elif orient == 'CW':
im_new.putpixel((j, width-1-i), pix) # 调整像素点的坐标
return im_new
im = PIL.Image.open('mywife.jpg')
rotate_image(im, orient='CCW').show()
通过以上修改,应该可以成功实现逆时针旋转图像90度的功能了。
【相关推荐】