图像的水平翻转[python]
所以我需要水平翻转一个图像,这意味着相对于水平轴,就像这张图片 但是我的问题是它相对于垂直轴翻转,如图所示 这是我现在的代码。有人能解释一下我需要做的改变吗?image.gif是我试图翻转的图像。我将新图像设置在如下所示的新位置的原因是,我希望该图像出现在与旧图像相同的窗口中。的确如此!只是垂直翻转,而不是水平翻转图像的水平翻转[python],python,Python,所以我需要水平翻转一个图像,这意味着相对于水平轴,就像这张图片 但是我的问题是它相对于垂直轴翻转,如图所示 这是我现在的代码。有人能解释一下我需要做的改变吗?image.gif是我试图翻转的图像。我将新图像设置在如下所示的新位置的原因是,我希望该图像出现在与旧图像相同的窗口中。的确如此!只是垂直翻转,而不是水平翻转 from cImage import* def horizentalFlip(oldimage): myimagewindow = ImageWin("image",1000
from cImage import*
def horizentalFlip(oldimage):
myimagewindow = ImageWin("image",1000,600)
oldimage = FileImage("image.gif")
oldimage.draw(myimagewindow)
oldw = oldimage.getWidth()
oldh = oldimage.getHeight()
newImage = EmptyImage(oldw,oldh)
maxp = oldw - 1
for row in range(oldh):
for col in range(oldw):
oldpixel = oldimage.getPixel(maxp-col,row)
newImage.setPixel(col,row,oldpixel)
newImage.setPosition(oldw+1,0)
newImage.draw(myimagewindow)
myimagewindow.exitOnClick()
谢谢您想要的翻转类型(围绕x轴的反射,您的第一张图片)通常称为“垂直”翻转,而围绕y轴的反射(您的第二张图片)通常称为水平翻转 撇开术语不谈,你需要关于x轴的反射,如果我理解正确,你的问题是你得到的是关于y轴的反射。这是因为以下几行:
maxp = oldw - 1
...
oldpixel = oldimage.getPixel(maxp-col,row)
操纵宽度(w
)、列(col
)和每个getPixel
调用的第一个坐标参数:所有这些概念都与操纵每个像素的水平坐标有关。但您希望更改每个像素的垂直坐标,因此需要使用高度、行和第二个坐标参数:
maxp = oldh - 1
...
oldpixel = oldimage.getPixel(col, maxp - row)
为什么不使用枕头进行图像处理?因为我们需要使用cImage。哦,好的。我现在明白了。我一辈子都有错误的观念吗?还是这个词改变了它的意思?你贴的照片很有意义。我现在对photoshop感到困惑。所以根据答案,水平翻转意味着移动/旋转水平访问,这反过来会使它围绕垂直访问旋转。这就是问题所在!我似乎对x轴和y轴的行和列有点困惑。谢谢你的帮助