【发布时间】:2022-08-14 18:19:24
【问题描述】:
在我从事图像处理工作的过程中,我遇到了一个我不清楚的奇怪现象。
我的图像尺寸为:(256, 256, 1) 当我使用以下代码使用 opencv 显示它时:
cv2.imshow(\'image\', image)
cv2.waitKey()
我得到以下结果:
相反,当我使用以下代码使用 matplotlib 显示它时:
plt.imshow(image, cmap=\"gray\")
我得到以下结果:
就我而言,第二个结果是理想的结果- 我的问题是如何制作这样的图像(仅通过代码,无需保存到文件并加载图像)并制作它,以便我在 opencv 中也获得相同的图像。
我研究了这个问题,但没有找到解决方案。
This reference 帮助我理解了一般原因,但在这种情况下,我仍然不知道如何在 opencv 中显示图像,如 matplotlib 视图。
谢谢!
-
matplotlib 使用颜色映射。查找
cmap=\"gray\"的 LUT 并将其与cv.applyColorMap一起使用以达到相同的结果 -
我也试过:
cv2.applyColorMap(image, cv2.COLORMAP_JET)并得到这个错误:cv2.error: OpenCV(4.5.5) D:\\a\\opencv-python\\opencv-python\\opencv\\modules\\imgproc\\src\\colormap.cpp:736: error: (-5:Bad argument) cv::ColorMap only supports source images of type CV_8UC1 or CV_8UC3 in function \'cv::colormap::ColorMap::operator ()\' -
与颜色图无关。与值范围和数据类型有关。探索
image.max()和image.dtype -
谢谢!如果有一个针对我的案例更具体的示例,它可以帮助我更好地理解如何使用它们
标签: python opencv matplotlib image-processing colormap