因为在使用darknet进行模型检测图片的时候会使用opencv,cv读取图片的时候总要将图片转成BGR,所以在使用的时候,就需要用cvtColor转成RGB格式。

def image_detection(image_path, network, class_names, class_colors, thresh):# Darknet doesn't accept numpy images.# Create one with image we reuse for each detectwidth = darknet.network_width(network)height = darknet.network_height(network)darknet_image = darknet.make_image(width, height, 3)image = cv2.imread(image_path)image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)image_resized = cv2.resize(image_rgb, (width, height),interpolation=cv2.INTER_LINEAR)darknet.copy_image_from_bytes(darknet_image, image_resized.tobytes())detections = darknet.detect_image(network, class_names, darknet_image, thresh=thresh)darknet.free_image(darknet_image)image = darknet.draw_boxes(detections, image_resized, class_colors)return cv2.cvtColor(image, cv2.COLOR_BGR2RGB), detections

查阅相关资料后(原文链接:https://blog.csdn.net/hacker_long/article/details/88430559)才知道:

OpenCV在1999年由Intel建立,当时主流的摄像头制造商和软件供应商提供的摄像头采集的图像的通道排列顺序为BGR,另外对于图片,位图BMP是最简单的,也是Windows显示图片的基本格式,其文件扩展名为*.BMP。在Windows下,任何格式的图片文件(包括视频播放)都要转化为位图才能显示出来,各种格式的图片文件也都是在位图格式的基础上采用不同的压缩算法生成的,值得注意的是位图BMP的格式就是BGR。正是基于BGR在当时被广泛使用,于是早期OpenCV开发者就选择BGR颜色格式,这也就成为了一种规范一直用到现在。

位图:
位图又称点阵图或光栅图,它使用我们称为像素(象素,Pixel)的一格一格的小点来描述图像。计算机屏幕其实就是一张包含大量像素点的网格。当我们把位图放大时,每一个像素小点看上去就像是一个个马赛克色块。
计算机能以位图和矢量图格式显示图像,位图和矢量图最简单的区别就是:矢量图可以无限放大,而且不会失真;而位图则不能。
常见的图像文件格式有:BMP、JPG(JPE,JPEG)、GIF等。BMP图像文件(Bitmap-File)格式是Windows采用的图像文件存储格式,在Windows环境下运行的所有图像处理软件都支持这种格式。

opencv读取的图像为什么是BGR相关推荐

  1. python下:用 matplotlib.pyplot 显示 Opencv 读取的图像

    在涉及图像处理时,我们通常用opencv去读取并处理图像,而用matplotlib去显示图像,因为opencv有很强的图像处理能力,而matplotlib有很强的可视化能力,可以方便的可视化分析实验的 ...

  2. OpenCV学习(2)——图像的数据格式BGR

    OpenCV学习(2)--图像的BGR格式解读 1. opencv读取的图片数据格式 2. BGR含义 1. opencv读取的图片数据格式 opencv读取的图片数据格式为numpy的nparray ...

  3. opencv读取字符串图像

    原文:http://www.cnblogs.com/zhaokewei/p/6868844.html opencv读取字符串图像

  4. c语言程序降低图像分辨率,减少OpenCV读取高分辨率图像的时间示例

    意义 目前无论是工业上还是生活中相机的分辨率也会越来越高,无论是学术上还是工业上使用OpenCV进行图像处理,特别是大批量处理的时候,读取一张高分辨率图像到内存中的时间减少的话对大批量的图像处理的效率 ...

  5. opencv 读取相机图像+ros发布图像

    #!/usr/bin/python2 # coding=utf-8import cv2 import numpy as np from std_msgs.msg import Header from ...

  6. 使用OpenCV读取摄像头图像并显示

    使用OpenCV最基本的功能是可以获取到外部摄像头的图像,并且显示出来.这样在此基础上就可以做其他的基于实时视频流的程序了.基本的代码如下: //******************** //打开摄像 ...

  7. python opencv 读取png图像的alpha通道

    关于python opencv加载png图像的文章非常少,由官方文档得知加参数cv2.IMREAD_UNCHANGED即可 img = cv2.imread(filepath, cv2.IMREAD_ ...

  8. opencv 读取CV_16U图像 c++

    cv::Mat depthImage = cv::imread("../data1/depth0.png",-1);

  9. python 读取jpg_Python OpenCV读取png图像转成jpg图像存储的方法

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

最新文章

  1. 云计算安全解决方案白皮书(一)
  2. 清华大学人工智能研究院成立听觉智能研究中心,将专注基础研究和成果产业化
  3. 4.6 前向和反向传播-深度学习-Stanford吴恩达教授
  4. java velocity是什么意思,什么是Apache Velocity?
  5. 拉格朗日插值函数计算机实现流程图,拉格朗日插值实验报告.doc
  6. 数据采集组件:Flume基础用法和Kafka集成
  7. JVM虚拟机-Class文件之字段表集合
  8. OpenCV使能CUDA加速
  9. ubuntu安装ROS教程
  10. 网络控制系统分析与设计——时延问题的网络控制系统建模
  11. Mac中vim的快捷操作
  12. mac 查找被占用的8081端口并关闭
  13. win10电脑插入U盘提示文件或目录损坏了如何解决
  14. 联发科MT6797/Helio X20软件用户手册资料介绍
  15. 工作绩效数据 工作绩效报告 偏差分析 变更控制流程 变更控制委员会
  16. css中zoom的用法
  17. MySQL中常用日期时间函数及获得
  18. 简单理解函数f(x;θ)中分号的含义
  19. 利用PyQt5制作本地音乐播放器
  20. “世界那么大,我想去看看” ——10款精美的旅游网站设计欣赏

热门文章

  1. Eclipse里看到project 存在向上或者向下的箭头
  2. 如何在 Win上写 Python 代码?最佳攻略来袭
  3. python安装和学习-最后推荐winpython
  4. Linux下载tomcat压缩包
  5. 怎么理解幂等性[或者http幂等性]
  6. Jmeter之参数化
  7. Python将小写字母转化为大写字母
  8. github本地项目上传到远程仓库
  9. 如何把你的安卓手机变成Linux?
  10. Errors报错记录