gpt4 book ai didi

python - 如何将 openCV 转换图像转换为原始格式

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:00 25 4
gpt4 key购买 nike

我已经将原始图像的大小从 200x200 调整为 128x128 ,因为 opencv 默认读取 BGR ,我处理了这一点,但在调整大小后它变成了灰度(如预期的那样)但我无法转换回其 RGB 格式

orignal = cv2.imread(os.path.join("/path","some_image.png"),0)

rgb = cv2.cvtColor(orignal, cv2.COLOR_BGR2RGB)

resized = cv2.resize(rgb,(128,128))

backtorgb = cv2.cvtColor(resized,cv2.COLOR_GRAY2RGB)

plt.imshow(backtorgb)

最后一行报错:

error: OpenCV(4.0.0) /io/opencv/modules/imgproc/src/color.hpp:259: error: (-2:Unspecified error) in function 'cv::CvtHelper::CvtHelper(cv::InputArray, cv::OutputArray, int) [with VScn = cv::Set<1>; VDcn = cv::Set<3, 4>; VDepth = cv::Set<0, 2, 5>; cv::SizePolicy sizePolicy = (cv::SizePolicy)2u; cv::InputArray = const cv::_InputArray&; cv::OutputArray = const cv::_OutputArray&]' Invalid number of channels in input image: 'VScn::contains(scn)' where 'scn' is 3

最佳答案

使用 cv2.resize() 调整图像大小不应将彩色图像变成灰度图像。它只是将图像 src 缩小或放大到指定大小。要将图像转换为灰度,请使用 cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)。您的错误消息还确认调整大小后的图像具有 3 个颜色 channel 。这是确认 cv2.resize() 不会将图像更改为灰度。

example

import cv2

image_file = 'assets/color_palette.jpg'

original = cv2.imread(image_file)
cv2.imshow('original', original)

rgb = cv2.cvtColor(original, cv2.COLOR_BGR2RGB)
cv2.imshow('rgb', rgb)

resized = cv2.resize(rgb, (128,128))
cv2.imshow('resized', resized)

key = cv2.waitKey(0)

关于python - 如何将 openCV 转换图像转换为原始格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55323468/

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