gpt4 book ai didi

python - 如何从 PNG 图像中删除第 4 个 channel

转载 作者:太空宇宙 更新时间:2023-11-03 13:13:33 26 4
gpt4 key购买 nike

我正在从 OpenCV 中的 URL 加载图像。一些图像是 PNG 格式并且有四个 channel 。我正在寻找一种方法来删除第 4 个 channel (如果存在)。

这是我加载图片的方式:

def read_image_from_url(self, imgurl):
req = urllib.urlopen(imgurl)
arr = np.asarray(bytearray(req.read()), dtype=np.uint8)
return cv2.imdecode(arr,-1) # 'load it as it is'

我不想更改 cv2.imdecode(arr,-1) 但我想检查加载的图像是否有第四个 channel ,如果有,将其删除。

类似这样,但我不知道如何真正删除第 4 个 channel

def read_image_from_url(self, imgurl):
req = urllib.urlopen(imgurl)
arr = np.asarray(bytearray(req.read()), dtype=np.uint8)
image = cv2.imdecode(arr,-1) # 'load it as it is'
s = image.shape
#check if third tuple of s is 4
#if it is 4 then remove the 4th channel and return the image.

最佳答案

您需要检查 img.shape 中的 channel 数,然后进行相应操作:

# In case of grayScale images the len(img.shape) == 2
if len(img.shape) > 2 and img.shape[2] == 4:
#convert the image from RGBA2RGB
img = cv2.cvtColor(img, cv2.COLOR_BGRA2BGR)

关于python - 如何从 PNG 图像中删除第 4 个 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36872379/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com