BGR转RGB(python)

  • 前言
  • BGR转RGB
  • 总结

前言

使用cv2打开图片默认是BGR模式,而使用PIL显示图片时是RGB模式,如果不做转换,图片会出现色彩上的问题,例如:

cv_img = cv2.imread('2022-05-06.png')
PIL.Image.fromarray(np.uint8(cv_img)).show()


BGR转RGB

使用cv2.imread打开图片会得到一个三维numpy数组,这个数组最后一维有3个数字分别代表这个图片在这个像素点上的BGR(默认模式)的数值。所以只要将这三个数字交换位置即可转换模式。
下面是将图片numpy数组BGR转RGB的函数代码:

def BGR_to_RGB(cvimg):pilimg = cvimg.copy()pilimg[:, :, 0] = cvimg[:, :, 2]pilimg[:, :, 2] = cvimg[:, :, 0]return pilimg

在使用PIL显示图片前调用这个函数即可使颜色恢复正常:

cv_img = cv2.imread('2022-05-06.png')
pil_img = BGR_to_RGB(cv_img)
PIL.Image.fromarray(np.uint8(pil_img)).show()

执行结果:


总结

BGR转RGB其实就是将代表B和R的数字交换位置。将代表B,G,R的数字交换位置就能得到其它颜色模式下的图片数组。

BGR转RGB(python)相关推荐

  1. opencv python 把图(cv2下)BGR转RGB,且HWC转CHW

    img = cv2.imread("001.jpg") img_ = img[:,:,::-1].transpose((2,0,1)) ① 在opencv里,图格式HWC,其余都是 ...

  2. python BGR 转换为 RGB

    将 numpy.ndarray 类型的 BGR 转为 RGB: if __name__ == '__main__':image_path = '1.jpg'image = cv2.imread(ima ...

  3. CV2.imread得到的图像显示成蓝色的原因和3种BGR转RGB的方法

    新手使用CV2.imread后,直接显示,得到下面这种蓝色的图片,与原图差异很大: CV2的imread默认存储的颜色空间顺序是BGR,与matplot显示用的imshow的颜色顺序RGB正好相反,那 ...

  4. 【超直白讲解opencv RGB与BGR】RGB模式与BGR模式有什么不同,如何相互转换?

    一.为什么会有BGR和RGB两种通道? 首先RGB与BGR本质都没有什么区别,OpenCV和PIL读取图片的格式分别是BGR和RGB. 当我们使用OpenCV读取图像时,你应该也会发现读取的数组其实是 ...

  5. OpenCV实现BGR转RGB

    一.问题 当使用opencv函数imread()读取图片时,颜色的顺序是BGR(blue.green.red),而Pillow的颜色顺序又是RGB,因此我们可能需要将BGR转RGB. 二.转换 可以通 ...

  6. bgr与rgb相互转换

    在opencv中的图像是以bgr形式存放的,但很多场景默认的是rgb形式的图像,这就导致实际应用中的颜色错乱,以下是bgr和rgb相互转换的函数: def rgb_bgr(r_color):r_col ...

  7. opencv:图像读取BGR变成RGB

    opencv大坑之BGR opencv对于读进来的图片的通道排列是BGR,而不是主流的RGB!谨记! #opencv读入的矩阵是BGR,如果想转为RGB,可以这么转 img = cv2.imread( ...

  8. python中rgb,python - 图像的RGB矩阵

    Taking an image as input, how can I get the rgb matrix corresponding to it? I checked out the numpy. ...

  9. 使用Python,Matplotlib显示RGB图像

    使用Python,Matplotlib显示RGB格式的 图像 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用matplotlib显示RGB图像.具体是使用matplotlib,pyplot和m ...

最新文章

  1. Nginx对某个文件夹或整个站点进行登录认证的方法
  2. c语言文件操作中换行,关于文件操作,碰到空格就换行
  3. C# Note32: 查漏补缺
  4. silverlight + wcf(json格式) + sqlserver存储过程分页
  5. springBoot集成多数据源mybatisPlus(自动切换数据源)
  6. Windows8在激烈竞争的平板电脑市场的优势与特色---移动3G时代失落的windows开发人员的福音...
  7. 结对编程项目总结(王开207, 唐彬170)
  8. 手用计算机怎么弄声音,计算器怎么调声音
  9. 硬改路由器-MW310R-AR9341篇
  10. mac 更新系统后无法使用 git
  11. Wallpaper (18)
  12. 一文搞明白SAD DNS(Side channel Attacked DNS)/ CVE-2020-25705
  13. 一文带你了解对游戏外挂的逆向分析的详细步骤。
  14. 系统动力学软件vensim之指数增长
  15. H5/C3进阶(9) -- 元素的显示与隐藏
  16. 视频融合技术平台解决方案
  17. mysql5.7第一次登录修改root密码
  18. 程序设计方法学-python
  19. html canvas自适应屏幕,Unity canvas 和 canvas元素自适应全屏
  20. 亿级数据服务平台:跟低效率、指标难统一的数仓说再见!

热门文章

  1. WordPress禁止F12审查元素、禁止图片拖动、禁止Ctrl+S保存、禁止Ctrl+U查看源码、右键美化,复制弹窗提醒版权
  2. 高等代数8-1 λ-矩阵
  3. 内网渗透靶场 Vulnstack(一)
  4. 【Linux】SSH免密登录配置
  5. oracle环境变量配置教程,oracle_window中oracle环境变量设置方法分享,window server中Oracle的环境变量设 - phpStudy...
  6. 2019养老产业政策全解读:2019年,中国养老元年丨60加养老观察
  7. 共建数据库可信开源社区 | openGauss Meetup(长沙站)圆满结束
  8. ATFX美指:小非农ADP数据来袭,美国是否出现经济衰退的关键指标
  9. Unity3D-高通AR-《狼来了》-6地平面AR及最后发布Android App
  10. 前端简单实现开心网注册