plt.imshow与cv2.imshow显示颜色问题

在用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显示结果

           

参考资料:http://stackoverflow.com/questions/15072736/extracting-a-region-from-an-image-using-slicing-in-python-opencv/15074748#15074748

原文地址:https://www.cnblogs.com/Ph-one/p/12093193.html

时间: 2024-10-12 04:26:30

plt.imshow与cv2.imshow显示颜色问题的相关文章

机器学习进阶-图像基本操作-图像数据读取 1.cv2.imread(图片读入) 2.cv2.imshow(图片展示) 3.cv2.waitKey(图片停留的时间) 4.cv2.destroyAllWindows(清除所有的方框界面) 5.cv2.imwrite(对图片进行保存)

1. cv2.imread('cat.jpg', cv2.IMGREAD_GRAYSCALE)  # 使用imread读入图像(BGR顺序), 使用IMGREAD_GRAYSCALE 使得读入的图片为灰度图, 2. cv2.imshow('cat', img)  # imshow表示展示图片,第一个参数表示图片的名字, 第二个参数表示需要显示的图片 3. cv2.waitKey(0)  #表示图片停留的时间, 0表示按任意键退出 4.cv2.destroyAllWindows()  #表示清除所

Google Colab调用cv2.imshow奔溃

当我在Google Colab运行如下代码 import cv2 import numpy as np image = cv2.imread('a.jpg') cv2.imshow('original_image', image) 竟然会使会话奔溃,然后内核重启,系统日志如下: 警告信息是“cannot connect to X server”,那什么是X server呢? X server是Linux系统上提供图形用户界面的服务程序.当客户端主机Client访问服务器Server上的图形程序时

Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()

为什么使用Python-OpenCV? 虽然python 很强大,而且也有自己的图像处理库PIL,但是相对于OpenCV 来讲,它还是弱小很多.跟很多开源软件一样OpenCV 也提供了完善的python 接口,非常便于调用.OpenCV 的最新版是4.0,包含了超过2500 个算法和函数,几乎任何一个能想到的成熟算法都可以通过调用OpenCV 的函数来实现,超级方便. 基本操作 1.图像读入 使用函数cv2.imread(filepath,flags) 读入图像.这幅图像应该在此程序的工作路径,

conda opencv cv2.imshow无法使用

error: -------src-dir-------/opencv-2.4.10/modules/highgui/src/window.cpp:501: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-co

机器学习进阶-图片基本处理-ROI区域 1.img[0:200, 0:200]截取图片 2.cv2.split(对图片的颜色通道进行拆分) 3. cv2.merge(将颜色通道进行合并) 4 cur_img[:, :, 0] = 0 使得b通道的颜色数值为0

1. 截取图片的部分区域img[0:200, 0:200], 读入的图片是ndarray格式 2. b, g, r = cv2.split(img)  # 对图片的颜色通道进行拆分 3.img = cv2.merge((b, g, r))  #对图片的颜色通道进行合并 4. 对其他通道置零,只显示单个通道 cur_img[:, :, 0] = 0, cur_img[:, :, 1] = 0 代码: 只显示部分区域 import cv2 # 定义显示函数 def cv_show(name, img

ubuntu之修改ls显示颜色

Linux 系统中 ls 文件夹的痛苦我就不说了,为了不伤眼睛,一般 ssh 终端背景都用的黑色,文件夹又是你妈的深蓝色,每次看文件夹都要探头仔细去看.这下彻底解决这个问题. 因为ubuntu下的/etc/目录里没有DIR_COLORS, 所以费了点劲儿. 1. 利用dircolors命令,查看我们的系统当前的文件名称显示颜色的值,然后利用管道重定向到用户目录下的任意一个文件(这里我们创建了一个.dircolors文件) 命令1: cd ~ 命令2: dircolors -p > .dircol

让MAC的终端显示颜色

vi .profile ----------------- alias ls='ls -F' alias cls='clear' alias grep='grep --color=auto' CLICOLOR="xterm-color" LSCOLORS="gxfxcxdxcxegedabagacad" export CLICOLOR LsCOLORS vi .vimrc ----------------- syntax on 让MAC的终端显示颜色,布布扣,bub

echo显示颜色

shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e echo显示颜色的格式: echo -e "\e[字体显示形式:字体颜色:背景色m字符串\e[m" 说明: 字体显示形式:1为高亮显示.4为下划线显示.5为闪烁. 字体颜色:范围为30--37         30:黑色         31:红色         32:绿色         33:黄颜色         34:蓝色         35:紫色         36:天蓝         

使用SecureCRT时设置vim显示颜色

平常使用最多的是SecureCRT来登陆Linux类的系统,但是默认的设置下SecureCRT显示色调单一没有多从颜色来区分文件.特别是使用vim没有颜色高亮来提示很不方便.下面是使SecureCRT有各种显示颜色. 选项–>会话选项–>仿真 然后将外观里面的颜色方案设置为Traditional即可(如果有链接到Linux中的话需要退出再重新登录).