首页
学习
活动
专区
圈层
工具
发布

OpenCV使用BGR而非RGB格式

日常开发和交流时,我们习惯将图片的颜色通道按照RGB(red, green, blue)进行排列。闲来无聊,在把玩卷积神经网络模型时发现OpenCV并没有按照这个顺序读入图片。...好奇地搜索一下OpenCV为什么使用BGR而非RGB。看到这篇博文:Why does OpenCV use BGR color format。...仔细阅读这篇博文,作者在使用matplotlib显式OpenCV读入的图片,发现图片显示很怪异。 原图如下:?使用OpenCV读取在matplotlib上显示的结果?...文中作者在一个大会上问了OpenCV的作者为什么使用BGR格式而不是使用RGB。他得到的答案总结起来就是由于历史的原因。...那么这个历史原因是什么: 早期开发者使用BGR作为颜色的空间的原因在于:那个时候的BGR格式在相机制造厂商和软件提供商之间比较受欢迎。例如。

1.9K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    NV21转RGB或BGR的java实现和C实现

    NV21是android平台摄像设备输出的标准格式,经常需要将它转为RGB或BGR格式, 以下是NV21格式图像矩阵转为RGB/BGR的实现代码,代码在windows/linux/android平台测试通过...NV21格式的具体定义参见: 《YUV(NV21)图像数据到RGB颜色空间的转换》 关于YUV与RGB的转换网上有很多文章,参见:《YUV与RGB互转各种公式》 java实现 /** * NV21...图像转RGB或BGR * @param input NV21格式图像数据 * @param width 图像宽度 * @param height 图像高度 * @param output...输出图像缓冲区 * @param isRGB 为{@code true}转为RGB图像,否则转为BGR图像 */ public void NV212RGBorBGR(byte[]input...output[y_index * 3 + 1] = (uint8_t)g; output[y_index * 3 + 2] = (uint8_t)b; } } } } 完整代码参见我的码云仓库

    3.6K10

    十四.基于OpenCV和像素处理的图像灰度化处理

    [Python图像处理] 十四.基于OpenCV和像素处理的图像灰度化处理 学Python近八年,认识了很多大佬和朋友,感恩。...---- 二.基于OpenCV的灰度化处理 在日常生活中,我们看到的大多数彩色图像都是RGB类型,但是在图像处理过程中,常常需要用到灰度图像、二值图像、HSV、HSI等颜色,OpenCV提供了cvtColor...一致 code表示转换的代码或标识 dstCn表示目标图像通道数,其值为0时,则有src和code决定 该函数的作用是将一个图像从一个颜色空间转换到另一个颜色空间,其中,RGB是指Red、Green和Blue...在OpenCV中,常见的颜色空间转换标识包括CV_BGR2BGRA、CV_RGB2GRAY、CV_GRAY2RGB、CV_BGR2HSV、CV_BGR2XYZ、CV_BGR2HLS等。...下面Image_Processing_07_02.py代码对比了九种常见的颜色空间,包括BGR、RGB、GRAY、HSV、YCrCb、HLS、XYZ、LAB和YUV,并循环显示处理后的图像。

    3.9K40

    关于opencv图片颜色不能正常在matplotlib中显示的问题

    opencv默认的彩色图片的加载方式是按照BGR加载的,直接用opencv的函数展示是没有问题的,但是有时候我们想把多张图片放在一起展示,这时候用matplotlib就比较方便,但是matplotlib...的图片展示是按照RGB展示的,如果中间不处理一下,直接展示opencv加载的图片,你会发现图片的颜色会出现问题,如何解决?...比较简单,使用opencv的函数把彩色图片转成RGB模式后,再用matplotlib展示就可以了。 效果如下: ? 上图中左边是BGR的显示模式,后面转成RGB后正常显示,这一点需要用的时候注意下。...加载原图,彩色的,默认是BGR img=cv.imread("imgs/22.png") # 用于存储所有弹框的图片集合 psw=[] # 转成RGB模式,否则plot不能正常识别 color_img...=cv.cvtColor(img,cv.COLOR_BGR2RGB) # 放入集合 psw.append(("BGR_SHOW",img)) psw.append(("RGB_SHOW",color_img

    2.3K10

    python中imread什么意思_imwrite函数

    当然,要了解具体的细节,还是应该 read the fuck code和API document,但貌似python的很多模块文档都不是很全,所以只能多看代码和注释了。...opencv cv2.imread 使用opencv读取图像,直接返回numpy.ndarray 对象,通道顺序为BGR ,注意是BGR,通道值默认范围0-255。...caffe.io.load_image: 没有调用默认的skimage.io.imread,返回值为0-1的float型数据,通道顺序为RGB 关于图像的一些说明 可以使用matplotlib的pyplot...;但是cv2.imshow方法由于它针对的是cv2的imread 所以它内部会做通道顺序的变化,传入为BGR转换为RGB,所以你如果传入RGB显示的就是BGR了。...print(type(im1)) print(im1.shape) #2 opencv im2=cv2.imread(imagepath) print(type(im2))#numpy BGR print

    1.4K20

    三.获取图像属性、兴趣ROI区域及通道处理

    注意,如果是合并[r,g,b]三通道,则显示如下所示,因OpenCV是按照BGR进行读取的。...OpenCV提供了200多种不同类型之间的转换,其中最常用的包括3类,如下: cv2.COLOR_BGR2GRAY cv2.COLOR_BGR2RGB cv2.COLOR_GRAY2BGR OpenCV...src一致 – code表示转换的代码或标识 – dstCn表示目标图像通道数,其值为0时,则有src和code决定 该函数的作用是将一个图像从一个颜色空间转换到另一个颜色空间,其中,RGB是指Red、...在OpenCV中,常见的颜色空间转换标识包括: CV_BGR2BGRA CV_RGB2GRAY CV_GRAY2RGB CV_BGR2HSV CV_BGR2XYZ CV_BGR2HLS 下面是调用cvtColor...下面代码对比了九种常见的颜色空间,包括BGR、RGB、GRAY、HSV、YCrCb、HLS、XYZ、LAB和YUV,并循环显示处理后的图像。

    3.7K10

    python实现图像的直方图均衡化

    计算累积分布函数:通过计算原始图像的累积分布函数,可以得到每个像素值的累积概率分布,即小于等于该像素值的概率。可以通过对直方图进行归一化和累加操作得到。...可以直接调用openCV的库函数实现图像的直方图均衡化 cv2.equalizeHist(img) 可以写一个完整的测试代码如下 import matplotlib.pyplot as plt import...=256) plt.title('origin') plt.show() # 原始直方图 img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) plt.title('origin...img.ravel(), bins=256) plt.title('myEqualize') plt.show() # 均衡化直方图 img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB...img.ravel(), bins=256) plt.title('myEqualize') plt.show() # 均衡化直方图 img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB

    1.2K30

    通过 Python 接口使用 OpenCV 原

    读取、显示和写入图像 import cv2 import matplotlib.pyplot as plt # 读取图像,第二个参数可以为1(默认读入彩图, 可省略), 0(以灰度图读入) im =...RGB 格式 im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB) plt.imshow(im, cmap='gray', interpolation='bicubic...颜色空间转换 在OpenCV 中,图像不是按传统的RGB 颜色通道,而是按BGR 顺序(即RGB 的倒序)存储的。读取图像时默认的是BGR,但是还有一些可用的转换函数。...# 1.使用opencv读取并创建灰度图像,按 BGR 顺序 im = cv2.imread('empire.jpg') gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY...empire.jpg') gray = cv2.cvtColor(im, cv2.COLOR_RGB2GRAY) # Note: 注意1和2的区别在颜色转换代码 # 常用:cv2.COLOR_BGR2RGB

    78420
    领券