Moh*_*ini 5 python opencv image image-resizing
我有一个形状为 (120, 470, 4) 的图像,我想将其调整为另一个尺寸,例如 (100, 400, 4)。cv2.resize我尝试通过使用如下函数来实现它
reshaped_image = cv2.resize(image, (100, 400))
并将 reshape_image 粘贴到更大的透明图像内,但问题是 reshape_image 的形状为 (100, 400, 3) 而不是 (100, 400, 4)。
我做错了什么或者该cv2.resize函数会丢失透明度信息吗?最后,我很高兴了解您的解决方案。(如果可能的话,用简单的例子)
问候
这是一个加载 3 通道图像的示例,获取其蓝色通道并将其复制为 Alpha 通道(这完全没有意义,但我手头没有 4 通道图像),然后再次将其合并为 4 通道图像。然后调整该图像的大小。
如果加载4通道图像,标志-1表示图像加载不变,因此可以直接加载并分割所有4通道。
所有图像的形状均已打印,并且可以调整大小。我正在使用 opencv 版本 3.1.0。
希望有帮助。
import cv2
import numpy as np
img = cv2.imread('image.jpg', -1)
print img.shape
b_channel, g_channel, r_channel = cv2.split(img)
alpha_channel = b_channel
print b_channel.shape
print g_channel.shape
print r_channel.shape
print alpha_channel.shape
img_RGBA = cv2.merge((b_channel, g_channel, r_channel, alpha_channel))
print img_RGBA.shape
res = cv2.resize(img_RGBA,(100, 400), interpolation = cv2.INTER_CUBIC)
print res.shape
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5033 次 |
| 最近记录: |