算法学习-图像的数据格式BGR

news2024/9/28 11:15:32

OpenCV学习——图像的BGR格式解读

  • 1. opencv读取的图片数据格式
  • 2. BGR含义

1. opencv读取的图片数据格式

opencv读取的图片数据格式为numpy的nparray格式。

一张二维图片是由像素点构成,如下图所示:
其中确定了像素点的位置,确定了颜色,通常为三通道RGB
在这里插入图片描述举例:[125,225,3]
对应维度信息表示:
[图片高度,图片宽度,像素BGR值]
[数组行数,数组列数,像素BGR值]
[Height,Width,Channels]

Ps:opencv读取的图片数值为BGR格式,与PIL库读取图片得到的RGB格式不同,因此如果用其他库的imshow函数来显示图片,图片的颜色会发生变化

2. BGR含义

B:Blue
G:Green
R:Red
分别代表三原色,不同的颜色由不同的三原色配比得到。因此,在一张二维图片的像素点数组中,确定行与列后,还会获取该位置三原色的数值,用以表示颜色。
Ps:像素值大小[0,255]

 

我的理解:因为部分例如我熟悉的yolov5需要用到的就是BGR值。所以获取到的图片必须得转成RGB值传入才能进行识别。特别是从TextureView表面纹理获取到的图片,它不是nv21的byte[]格式,而是ARGB_8888的Bitmap。我们只需要将bitmap直接转换成BGR格式存储即可,不需要先将其转换成bmp->nv21->BGR,这中间多了一层。bmp->BGR.

在TextureView里面的onSurfaceTextureUpdated方法中,TextureView.getBitmap方法可用于获取包含当前帧的Bitmap对象,它的格式为 Bitmap.Config.ARGB_8888。然后将Bitmap对象传递给toBgr方法以获取BGR像素数据。此数据可以用于您的图像处理需求。以下为对应的bmp->BGR方法:

public static byte[] toBgr(Bitmap bitmap) {
    int width = bitmap.getWidth();
    int height = bitmap.getHeight();
    byte[] data = new byte[width * height * 3];

    int[] pixels = new int[width * height];
    bitmap.getPixels(pixels, 0, width, 0, 0, width, height);

    for (int i = 0; i < pixels.length; i++) {
        int pixel = pixels[i];
        int r = Color.red(pixel);
        int g = Color.green(pixel);
        int b = Color.blue(pixel);

        data[3 * i] = (byte) b;
        data[3 * i + 1] = (byte) g;
        data[3 * i + 2] = (byte) r;
    }

    return data;
}

获取到BGR格式保存的byte[]数组后,即可以直接使用于一些算法byte[]输入。这些当然是视不同的算法所需的格式而定。而我这边主要是yolov5需要到。

这篇文章引用了opencv获取图片的BGR的一些理解,主要为我个人理解以及深入学习使用。如有冒犯,还请联系我,我将相关内容删除

引用文章的链接:OpenCV学习(2)——图像的数据格式BGR_bgr图像_Run的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/487184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

美团企业版:地利尚可,天时不足

配图来自Canva可画 近年来入局B端逐渐成为各家互联网大厂的必然选项&#xff0c;美团自然不甘心落于人后。 4月13日&#xff0c;美团企业版正式上线&#xff0c;面向企业客户推出一站式企业消费管理服务&#xff0c;覆盖团餐、差旅等场景&#xff0c;同时推出“企航计划”&am…

电脑视频删除了怎么恢复回来?很着急

案例分享&#xff1a;“电脑视频删除了怎么恢复回来&#xff1f;我是一名影楼的摄像师&#xff0c;我的主要工作就是拍摄婚礼视频&#xff0c;最近拍了一场婚礼视频&#xff0c;当时由于相机的内存不足&#xff0c;于是将宣传片等视频都导入进了电脑里面&#xff0c;清空摄像机…

自定义控件 (?/N) - 颜料 Paint

参考来源 一、颜色 1.1 直接设置颜色 1.1.1 setColor( ) public void setColor(ColorInt int color) paint.setColor(Color.RED) paint.setColor(Color.parseColor("#009688")) 1.1.2 setARGB( ) public void setARGB(int a, int r, int g, int b) paint.se…

多商户商城系统-v2.2.3版本发布

likeshop多商户商城系统-v2.2.3版本发布了&#xff01;主要更新内容如下 新增 1.用户端退出账号功能 优化 1.平台添加营业执照保存异常问题 2.平台端分销商品优化-只显示参与分销的商品 3.优化订单详情显示营销价格标签 4.平台交易设置增加默认值 5.种草社区评论调整&a…

如何下载安装驱动

1 打开浏览器 这里以Edge浏览器举例 第一步打开桌面上的Edge浏览器 如果您的桌面上没有 那么找到搜索栏 搜索Edge 然后打开 打开之后一般是这样 然后把我发送您的地址 驱动下载地址 https://t.lenovo.com.cn/yfeyfYyD &#xff08;这个网址只是一个例子&#xff09; 删除掉前…

MQ主流中间件

MQ主流中间件 目前&#xff0c;在消息中间件的领域中&#xff0c;主流的组件包括以下几种&#xff1a; Apache Kafka&#xff1a;一个分布式流处理平台&#xff0c;可以用于构建实时数据管道和流式应用程序。 RabbitMQ&#xff1a;一个实现了 AMQP&#xff08;高级消息队列协…

【Spring Security第一篇】初始Spring Security、表单认证、认证与授权

文章目录 一、初识Spring Security1. Spring Security简介2. 第一个Spring Security项目&#xff08;XML文件配置&#xff09;3. 第一个Spring Security项目&#xff08;自动配置&#xff09;4. 配置Security账户 二、表单认证1. Web 应用中基于密码的身份认证机制2. 默认表单认…

基于 Rainbond 的混合云管理解决方案

内容概要&#xff1a;文章探讨了混合云场景中的难点、要点&#xff0c;以及Rainbond平台在跨云平台的混合云管理方面的解决方案。包括通过通过统一控制台对多集群中的容器进行编排和管理&#xff0c;实现了对混合云中应用的一致性管理。文章还介绍了Rainbond平台在混合云环境下…

程序员的新电脑应该安装那些环境呢?

换新电脑了&#xff0c;那么作为一名程序员需要安装那些软件呢&#xff1f; 电脑系统版本&#xff1a;Windows11 注意&#xff1a;用户名一定要设置成英文的&#xff0c;否则后面会出现一定的问题&#xff01;&#xff01; 1、配置环境 &#xff08;1&#xff09;JDK环境 h…

HIEE300024R4 UAA326A04电流、电压、功率测量机电指示仪表的选用

​ HIEE300024R4 UAA326A04电流、电压、功率测量机电指示仪表的选用 电流、电压、功率测量机电指示仪表的选用 用于测量电流和电压的仪器类型如下 不 乐器 适用于 1个 PMMC&#xff08;永磁动圈&#xff09; 直流电流 2个 动铁式 交直流 3个 电测力计式 …

vcruntime140_1.dll丢失的解决方法

vcruntime140_1.dll是Microsoft Visual C Redistributable中的一个动态链接库&#xff08;DLL&#xff09;文件&#xff0c;是电脑Windows系统中重要的文件&#xff0c;丢失会造成很多软件报错无法运行。有不少小伙伴在打开ps&#xff0c;pr或者游戏的过程中都遇到过这个问题&a…

辅助驾驶功能开发-功能规范篇(16)-2-领航辅助系统NAP-巡航跟车基础功能

接上篇博文 2.3.2.巡航跟车基础功能 巡航跟车基础功能介绍辅助驾驶系统的车速设定,车间时距设定,纵向定速巡航、跟车加减速、起停,横向居中控制,弯道控制等逻辑。 前置条件: (1)NOA功能激活; 2.3.2.1.车速调节 1)激活时初始显示 中控屏设置界面有“融合限速设置”的开…

成功上岸国科大研究生!

Datawhale干货 作者&#xff1a;罗龙&#xff0c;江西财经大学&#xff0c;Datawhale优秀助教 中国科学院大学简介 中国科学院大学&#xff08;University of Chinese Academy of Sciences&#xff09;&#xff0c;简称“国科大”&#xff0c;是一所以研究生教育为主的科教融合…

我群 300+人已熟练使用的 ChatGPT Prompt 技巧

这是吴恩达联合 OpenAI 官方录制的 ChatGPT Prompt 免费视频课&#xff0c;最后一个总结&#xff0c;视频&#xff1a; https://learn.deeplearning.ai/chatgpt-prompt-eng/lesson/2/guidelines 在这一节中&#xff0c;我会分享两个技巧&#xff1a;Transforming 和 Expanding …

搭建electron-vue下

搭建electron-vue下 npm install 后续问题Version 9 of Highlight.js has reached EOL. npm run dev 后续ReferenceError: Unknown plugin "component" specified in ...Error: Cannot find module electron-logCant resolve axios inCant resolve vue-electronCant …

day1_内存区域

文章目录 1 程序计数器2 虚拟机栈(JVM 栈)2.1 基本概念以及演示2.2 栈内存溢出的情况2. 3 线程排查 3 本地方法栈4 堆4.1 堆内存溢出以及诊断 5 方法区 JVM的内存区域&#xff0c;主要分为了5个部分: 方法区&#xff0c; 堆&#xff0c; 程序计数器&#xff0c; 虚拟机栈&#…

解读Toolformer

【引子】读论文Toolformer: Language Models Can Teach Themselves to Use Tools&#xff0c;https://arxiv.org/pdf/2302.04761.pdf&#xff0c;再阅读了几篇关于Toolformer的网络热文&#xff0c;于是“无知者无畏”&#xff0c;开始自不量力地试图解读Toolformer。 大语言模…

《数据安全法》

中华人民共和国数据安全法 &#xff08;2021年6月10日第十三届全国人民代表大会常务委员会第二十九次会议通过&#xff09; 目录 第一章 总则 第二章 数据安全与发展 第三章 数据安全制度 第四章 数据安全保护义务 第五章 政务数据安全与开放 第六章 法律责任 第…

Gradio学习笔记--Gradio基本用法和简单案例

​​​​​​​ 目录 1--配置Gradio 2--Hello World案例 2-1--基本使用 2-2--进阶使用 3--图像案例 3--常用类 Interface 和 Blocks 1--配置Gradio 使用 pip 安装 Gradio&#xff1a; pip install gradio 2--Hello World案例 2-1--基本使用 import gradio as grdef …

代码随想录算法训练营第二十八天 | 三个逗点四个子串的类型题、子集题要取所有节点、子集与树层去重

93.复原IP地址 文档讲解&#xff1a;代码随想录 (programmercarl.com) 视频讲解&#xff1a;回溯算法如何分割字符串并判断是合法IP&#xff1f;| LeetCode&#xff1a;93.复原IP地址_哔哩哔哩_bilibili 状态&#xff1a;不会做。这是三个逗点四个子串的类型题。 思路 这是切割…