【发布时间】:2019-07-19 07:17:43
【问题描述】:
我有一个代码,其中矩阵 hip_dir 表示 RGB 图像。如果我检查它的形状,python 会返回 (1080, 1920, 3)。如果我写
cv2.imwrite('hip_dir.jpg',hip_dir)
我得到了保存在文件夹中的正确图像。但是,当我这样做时
cv2.imshow('img0',hip_dir)
cv2.waitKey(0)
cv2.destroyAllWindows()
我得到了相同的黑白图像(但是有一些蓝色像素,这让这更加奇怪)。
如何正确使用 imshow?
编辑:
使用命令 cv2.cvtColor 会导致如下错误:
error: OpenCV(4.1.0) c:\projects\opencv-
python\opencv\modules\imgproc\src\color.simd_helpers.hpp:94: error:
(-2:Unspecified error) in function '__cdecl cv::impl::`anonymous-namespace'::CvtHelper<struct cv::impl::`anonymous namespace'::Set<3,4,-1>,struct cv::impl::A0xe227985e::Set<3,4,-1>,struct cv::impl::A0xe227985e::Set<0,2,5>,2>::CvtHelper(const class cv::_InputArray &,const class cv::_OutputArray &,int)'
Unsupported depth of input image:
'VDepth::contains(depth)'
where
'depth' is 6 (CV_64F)
Edit2:我发现发生这个错误的原因很简单,因为矩阵在 np.float64 中。但是,将其转换为 np.float32 并不会改变 imshow 结果。
【问题讨论】:
-
在您的问题中添加您的图像(包括正确版本和 “不开心” 版本)总是值得赞赏的,并且在提出图像处理问题时更有可能产生有用的答案。 .