将三个RGB图像合并为一个RGB图像

我有3个RGB图像,但是每个图像只有1个非零通道(即,一个红色通道在蓝色和绿色通道中具有0,因此我想将它们合并为一个具有正确颜色的RGB图像)每个频道。

我为自己的用语道歉,我不太了解该术语(这实际上对我的搜索查询没有帮助)

这是我的图像:Blue Green Red

redstonegu 回答:将三个RGB图像合并为一个RGB图像

我认为您可以在此处使用Image.merge并从每个图像中获取适当的频道。请注意,我在这里使用requests.get(...)BytesIO从链接的图像中下拉,但是如果在本地有它们,则可以直接在文件名上直接使用Image.open(...)

from io import BytesIO
from PIL import Image
import requests

red = Image.open(BytesIO(requests.get('https://i.stack.imgur.com/EKQW4.jpg').content)) 
green = Image.open(BytesIO(requests.get('https://i.stack.imgur.com/Xel7l.jpg').content))
blue = Image.open(BytesIO(requests.get('https://i.stack.imgur.com/vyrqR.jpg').content))
combined = Image.merge('RGB',(red.getchannel('R'),green.getchannel('G'),blue.getchannel('B'))
combined.save('output_image_name.jpg')

这会给你类似的东西

enter image description here

,

您还可以使用OpenCV:

blue = cv2.imread("blue.jpg")
red = cv2.imread("red.jpg")
green = cv2.imread("green.jpg")

merge = blue + red + green
cv2.imwrite('merge.jpg',merge)

enter image description here

本文链接:https://www.f2er.com/3155268.html

大家都在问