在用plt.imshow和cv2.imshow显示同一幅图时可能会出现颜色差别很大的现象。
这是因为:opencv的接口使用BGR,而matplotlib.pyplot 则是RGB模式
import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread('lena_std.tif') b,g,r = cv2.split(img) img2 = cv2.merge([r,g,b]) plt.subplot(121);plt.imshow(img) plt.subplot(122);plt.imshow(img2) plt.show() cv2.imshow('bgr image',img) cv2.imshow('rgb image',img2) cv2.waitKey(0) cv2.destroyAllWindows()
程序运行结果如下:
Matplotlib显示结果
OpenCV显示结果
下面看下cv2.imshow()和plt.imshow()的区别
到此这篇关于plt.imshow与cv2.imshow显示颜色问题的文章就介绍到这了,更多相关plt.imshow与cv2.imshow显示颜色内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!
我有一个代码,其中矩阵hip_dir表示一个RGB图像。如果我检查它的形状,python返回(1080, 1920, 3)。如果我写 我得到保存在文件夹中的正确图像。然而,当我这样做的时候 我得到了同样的图像,黑色和白色(有一些蓝色像素,但是,使这更奇怪)。 如何正确使用imshow? 编辑: 使用命令cv2。cvtColor导致以下错误: Edit2:我发现发生这个错误的原因很简单,因为矩阵是n
我有cv2的问题。我的代码中的CVT颜色: 错误: 我已经测试过它之前,我导入我的图像已经灰度与"img=cv2.imread(image_path)",然后部分与hsv...它工作得很好,但是现在我用“cv2”拍摄了一张屏幕截图,并尝试了灰度。COLOR_BGR2GRAY"我得到上面这个错误。当我删除该行,我不会得到任何错误,但图像不是我想要的阈值。因此,在我的代码继续使用hsv之前,必须将图像
我试图检查通过cv2.imread()实际读取的数据,但每当我这样做时,我得到的是一个全灰色屏幕。我应该得到彩虹的图像。
我的当前程序将向用户输出图像,并根据用户输入,根据需要重新调整图像。 长话短说,我试图在图像文件中找到圆形对象。我将使用Hough圆变换。然而,因为我在图像中的许多圆不是“完美圆”,所以我正在做一个“猜测”圆半径的算法。但是,我希望允许用户根据需要重新调整半径。 有没有办法要求用户输入,然后根据用户输入,重新调整imshow()中的窗口?现在,imshow()拒绝显示实际的窗口,直到我使用cv2.
问题内容: 有没有一种方法可以使用python在pygame窗口上显示文本? 我需要显示一堆实时信息,这些信息会更新,而不是为我需要的每个角色制作图像。 我可以在屏幕上显示文字吗? 问题答案: 是。可以在pygame中绘制文本:
问题内容: 我使用了一些显示颜色的命令,但是当我将它们与手表一起使用时,颜色消失了: 是否有可能以某种方式重新显示颜色? 问题答案: 现在,某些较新的版本支持颜色。 例如。