opencv imshow plt imshow

opencv官方文档上写的,https://docs.opencv.org/master/dc/d2e/tutorial_py_image_display.html

Color image loaded by OpenCV is in BGR mode. But Matplotlib displays in RGB mode. So color images will not be displayed correctly in Matplotlib if image is read with OpenCV. Please see the exercises for more details.

https://stackoverflow.com/questions/15072736/extracting-a-region-from-an-image-using-slicing-in-python-opencv/15074748#15074748

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread(‘messi4.jpg‘)
b,g,r = cv2.split(img)
img2 = cv2.merge([r,g,b])
#img2 = img[:,:,::-1]
plt.subplot(121);plt.imshow(img) # expects distorted color
plt.subplot(122);plt.imshow(img2) # expect true color
plt.show()

cv2.imshow(‘bgr image‘,img) # expects true color
cv2.imshow(‘rgb image‘,img2) # expects distorted color
cv2.waitKey(0)
cv2.destroyAllWindows()

  

原文地址:https://www.cnblogs.com/jianyingzhou/p/11216163.html

时间: 2024-10-20 03:05:22

opencv imshow plt imshow的相关文章

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(1

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】PyCharm中matplotlib.pyplot.imshow()无法绘图

在利用Anaconda3 + PyCharm 2018 实现神经网络的实践中,涉及到一个根据像素数组绘制图像的实践,如下所示(这里只需要关心image_array即可,对源数据的预处理可忽略): # coding=utf-8 # author: BebDong # 10/23/18 import numpy import matplotlib.pyplot as plt # 打开并读取文件 data_file = open("mnist_dataset/mnist_train_100.csv&q

imwrite imshow机制

今天在做数据增强的时候,遇到一个奇怪的问题.调用imwite生成的图片,在本地用图片查看器打开的时候是正常的.但是在代码里imshow的时候是一片亮白. 代码类似如下 gaussian_img = add_gaussian_noise(img_mat) #gaussian_img的数据类型是float32的 new_img_name = img_name.replace(".png","gauss{}.png".format(seq)) seq += 1 cv2.i

matplotlib中的imshow()

1 import matplotlib.pyplot as plt 2 plt.imshow(x,cmap) x表示要显示的图片变量,cmap为颜色图谱,默认为RGB(A)颜色空间,也可以指定,gray是灰度图 1 plt.imshow(img,'gray') 在窗口上绘制完这个图片后,如果要把窗口显示出来,就调用plt.show() 但在notebook中也可以不写这个语句,会自动显示窗口 具体用法见:https://www.cnblogs.com/denny402/p/5122594.htm

imshow

imshow Description imshow(I) displays image I in a Handle Graphics® figure, where I is a grayscale, RGB (truecolor), or binary image.  For binary images, imshow displays pixels with the value 0 (zero) as black and 1 as white.  imshow optimizes figure

Python下opencv使用笔记(四)(图像的阈值处理)

图像的阈值处理一般使得图像的像素值更单一.图像更简单.阈值可以分为全局性质的阈值,也可以分为局部性质的阈值,可以是单阈值的也可以是多阈值的.当然阈值越多是越复杂的.下面将介绍opencv下的三种阈值方法. (一)简单阈值 简单阈值当然是最简单,选取一个全局阈值,然后就把整幅图像分成了非黑即白的二值图像了.函数为cv2.threshold() 这个函数有四个参数,第一个原图像,第二个进行分类的阈值,第三个是高于(低于)阈值时赋予的新值,第四个是一个方法选择参数,常用的有: ? cv2.THRESH

Python下opencv使用笔记(五)(图像的平滑与滤波)

对于图形的平滑与滤波,但从滤波角度来讲,一般主要的目的都是为了实现对图像噪声的消除,增强图像的效果. 首先介绍二维卷积运算,图像的滤波可以看成是滤波模板与原始图像对应部分的的卷积运算.关于卷积运算,找到几篇相关的博客: 图像处理:基础(模板.卷积运算) 图像处理-模板.卷积的整理 对于2D图像可以进行低通或者高通滤波操作,低通滤波(LPF)有利于去噪,模糊图像,高通滤波(HPF)有利于找到图像边界. (一)统一的2D滤波器cv2.filter2D Opencv提供的一个通用的2D滤波函数为cv2

OpenCV&&python_图像平滑(Smoothing Images)

Goals 学习用不同低通滤波方法模糊图像(Blur imagess with various low pass filter) 用用定制的滤波器处理图像(Apply custom-made filters to images (2D convolution)) 高通滤波与低通滤波 images can be filtered with various low-pass filters (LPF), high-pass filters (HPF), etc.  A LPF helps in re