Python PIL为什么我不能在这里使用ImageOps.colorize。?

2024-05-17 16:20:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用PIL和python制作一个3D图像。但是我在包括(red_img = ImageOps.colorize(right_img_developed,(0, 0, 0), (255, 0, 0)))cyan_img = ImageOps.colorize(left_img_developed,(0, 0, 0), (0, 255, 255))的一行上得到了一个断言错误,我试着用谷歌搜索错误,但没有得到任何答案。我也查看了文档,但找不到任何有用的帮助。提前感谢。:这是我的代码:

import io, re, requests
from PIL import  Image, ImageOps, ImageEnhance

imgpth ='path/image.jpg'

right_img = Image.open(imgpth)
right_img_resized = right_img.resize((400, 400))
right_img_developed = right_img_resized.transform((400, 300), Image.QUAD, data =(0, 0, 100, 400, 300, 400, 400, 0), resample=Image.BILINEAR)

left_img_url = re.sub('FRB', 'FLB', imgpth)
left_img = Image.open(left_img_url)
left_img_resized = left_img.resize((400, 400))
left_img_developed = left_img_resized.transform((400, 300), Image.QUAD, data =(0, 0, 100, 400, 300, 400, 400, 0), resample=Image.BILINEAR)

red_img = ImageOps.colorize(right_img_developed,(0, 0, 0), (255, 0, 0))
cyan_img = ImageOps.colorize(left_img_developed,(0, 0, 0), (0, 255, 255))

blend = Image.blend(red_img, cyan_img, 0.5)

red_img.show()
cyan_img.show()
blend.show()

Tags: imagerightimgpilshow错误redleft
1条回答
网友
1楼 · 发布于 2024-05-17 16:20:57

函数^{}需要一个灰度图像作为输入,并对其应用一个色阶。这就是mode "L"所代表的(L=L亮度=灰度)

如果正在加载的图像以RGB(A)格式存储,则可以将其转换为灰度,如下所示:

img = Image.open("image.jpg").convert("L")

相关问题 更多 >