为什么cv2.cvtColor(img,cv2.COLOR\u BGR2GRAY)输出的形状发生了变化?

2024-09-25 00:34:13 发布

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

我尝试以下代码:

from PIL import Image
import cv2
import numpy as np
import io

.....

buf = io.BytesIO(ret.content)
image = Image.open(buf)
# result is (25,150,3)
print(np.asarray(image).shape)
img = cv2.cvtColor(np.asarray(image), cv2.COLOR_RGB2BGR)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# result is (25,150)
print(np.asarray(gray).shape)

第一个打印结果是(25150,3),第二个打印结果是(25150)。你知道吗

但我尝试下面的代码

imagePixel = cv2.imread(path, 1)
print(np.asarray(imagePixel).shape)
_, X_test = cv2.threshold(imagePixel, 96, 255, cv2.THRESH_BINARY)
print(np.asarray(X_test).shape)

两个输出为(25150,3)

我想得到图像形状(25150,3),但我不知道如何修复第一个代码片段。 我不知道为什么cv2.cvtColor的输出形状会改变? 谢谢


Tags: 代码ioimageimportisnpresultcv2