python - Image.fromarray 输出高度和宽度相反的镜像图像
问题描述
继用示例 PNG 图像中的颜色替换灰度像素值之后。我正在尝试从渐变图像中获取颜色并将它们应用于灰度图像,目前,代码输出这个正确的图像以供比较,源图像和渐变。代码如下:
# -*- coding: utf-8 -*-
import os, numpy, PIL
from PIL import Image
# Access all PNG files in directory
allfiles=os.listdir(os.getcwd())
imlistmaster=[filename for filename in allfiles if filename[-4:] in [".png",".PNG"]]
imlistGradient=[filename for filename in imlistmaster if "grad" in filename]
imlistSample=[filename for filename in imlistmaster if "Sample" in filename]
# Get dimensions of images
w1,h1=Image.open(imlistSample[0]).size
N1=len(imlistSample)
w2,h2=Image.open(imlistGradient[0]).size
N2=len(imlistGradient)
arr1=numpy.zeros((w1,h1,4),numpy.uint8)
#Create array based on gradient
for im in imlistGradient:
imarr2=numpy.array(Image.open(im),dtype=numpy.uint8)
pix2=Image.open(im).load()
# Convert grayscale to RGB values based on gradient
for im in imlistSample:
filename1 = os.path.basename(imlistSample[0])
pix1=Image.open(im).load()
for x in range(w1):
for y in range (h1):
color=pix1[x, y]
color=list(color)
colorvalue=color[0]
newcolor=pix2[10,colorvalue]
pix1[x,y]=newcolor
arr1[x,y]=newcolor
out=Image.fromarray(arr1,mode="RGB")
out.save("testimage.png")
据我所知,错误发生在最后的输出步骤,因为检查变量资源管理器显示 w1、h1、x、y 的正确值以及从 (arr1) 生成图像的数组。在这种情况下,为什么我会得到一个高度和宽度颠倒的镜像?
解决方案
推荐阅读
- javascript - 调用不带大括号的函数,但在 Node.js 中使用模板字符串
- java - Authorize.net Java SDK(2.0.1v) 环境未设置问题
- matplotlib - seaborn.pairplot 使用条件设置透明度?
- php - 在php中移动上传的文件的问题
- python - 使用 iloc 或其他方法在其中使用循环访问多个项目的数据
- perl - Perl:为下一个 curl 请求解析 json 响应
- elasticsearch - ElasticSearch 映射折叠/对分组文档执行操作的结果
- java - 如何在春季会话中检查 spring_session 表中是否存在会话?
- jenkins - 如何在 Jenkinsfile 中正确指定 bitbucket 结帐
- java - 获取目录和子目录中所有txt文件的列表并将其添加到列表中