当前位置: 首页 > news >正文

img[:, :, ::-1] 通俗理解

👨‍💻个人简介: 深度学习图像领域工作者
🎉工作总结链接:https://blog.csdn.net/qq_28949847/article/details/128552785
             链接中主要是个人工作的总结,每个链接都是一些常用demo,代码直接复制运行即可。包括:
                    📌1.工作中常用深度学习脚本
                    📌2.torch、numpy等常用函数详解
                    📌3.opencv 图片、视频等操作
                    📌4.个人工作中的项目总结(纯干活)
🎉视频讲解: 以上记录,通过B站等平台进行了视频讲解使用,可搜索 ‘Python图像识别’ 进行观看
              B站:Python图像识别
              抖音:Python图像识别
              西瓜视频:Python图像识别


1. img[:, :, ::-1]

img[:, :, ::-1] 是一种常见的图像操作方式,用于对图像进行水平翻转(即左右翻转)、上下翻转、颜色通道转换(BRR–>RGB)。

在Python中,多维数组可以使用切片语法进行索引和切片。对于三维数组或图像,第一个维度表示行,第二个维度表示列,第三个维度通常表示颜色通道(例如RGB图像中的红、绿、蓝三个通道)。

因此,img[:, :, ::-1] 表示选择所有行、所有列,并将最后一个维度倒序排列。由于在OpenCV中,最后一个维度按顺序分别代表B、G、R三个颜色通道,因此将其倒序排列相当于将R通道放在了最前面,即将BGR图像转换为RGB图像。

2. ::-1如何更通俗的理解呢

::-1这个语法可以理解为Python中的切片(slice)语法,用于对序列(例如列表、字符串、多维数组等)进行翻转或截取操作。

具体来说,如果一个切片的形式是start:stop:step,其中start表示起始位置(包括该位置),stop表示终止位置(不包括该位置),step表示步长。如果省略start,默认为0;如果省略stop,默认为序列长度;如果省略step,默认为1。

step负数时,表示从右向左遍历序列,即反向遍历。而“::”表示在两个冒号之间,没有指定start和stop,因此表示选择所有元素。最后的“-1”表示逆序遍历,即从序列末尾开始倒序遍历。

因此,[::-1]可以理解为对整个序列进行倒序遍历,返回一个新的序列,这个语法常用于反转列表、字符串以及多维数组的行、列等方向。

对于图像处理,img[:, :, ::-1]表示对多维数组的第三个维度(即通道维度)进行逆序遍历,将BGR顺序变成RGB顺序,从而实现图像色彩通道的转换。

3. 示例

import cv2img = cv2.imread(r'002344348659-90_84-429&369_530&406-525&405_425&398_428&364_528&371-0_0_17_26_30_24_8-105-11.png')cv2.imshow('img', img)# b g r --> r g b
RGB = img[:, :, ::-1]# 左右颠倒
l_r = img[:, ::-1, :]# 上下颠倒
u_d = img[::-1, :, :]cv2.imshow('RGB', RGB)
cv2.imshow('l_r', l_r)
cv2.imshow('u_d', u_d)
cv2.waitKey(0)

示例效果:
在这里插入图片描述

相关文章:

img[:, :, ::-1] 通俗理解

👨‍💻个人简介: 深度学习图像领域工作者 🎉工作总结链接:https://blog.csdn.net/qq_28949847/article/details/128552785 链接中主要是个人工作的总结,每个链接都是一些常用demo&#xff0c…...

基于springboot+vue+elementui的健身房会员管理系统的

为了帮助用户更好的了解和理解程序的开发流程与相关内容,本文将通过六个章节进行内容阐述。 第一章:描述了程序的开发背景,程序运用于现实生活的目的与意义,以及程序文档的结构安排信息; 第二章:描述了程序…...

在酒店房间中的数据库索引

如果你经常去酒店,你会看到一块类似下面的标牌,指引你到达房间。这能够帮助你方便快速地找到房间,特别是当酒店拥有许多房间时。 以一个有9层的酒店为例。你的房间号是917。第一步是找到你的房间在哪一层,通常第一个数字表示楼层…...

Zookeeper学习---2、客户端API操作、客户端向服务端写数据流程

1、客户端API操作 1.1 IDEA 环境搭建 前提&#xff1a;保证 hadoop102、hadoop103、hadoop104 服务器上 Zookeeper 集群服务端启动。 1、创建一个工程&#xff1a;Zookeeper 2、添加pom文件 <?xml version"1.0" encoding"UTF-8"?> <project …...

Stack 栈的实现与应用

目录 1. 概念 2. 常用的栈的方法 2.1 方法 2.2 代码 3. 自己实现栈 3.1 构造MyStack 3.2 push() 3.3 ensureCapacity&#xff08;&#xff09; 3.4 pop() 3.5 peek() 3.6 empty() 3.7 szie() 4. 栈的应用 1. 概念 栈&#xff08;Stack&#xff09;是一种数据结构&…...

CSDN中如何获得铁粉(用心篇)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

es 三 安装 es 安装kibana

目录 安装7.3.0 版本 下载地址 一个比一个快 页面测试访问 安装kibana 下载 Config/kibana.yml 配置修改开启中文 页面访问 安装7.3.0 版本 下载地址 一个比一个快 Index of /elasticsearch/ 下载中心 - Elastic 中文社区 下载中心 - Elastic 中文社区 官网下载 开箱…...

牛客HJ43迷宫问题 - 创建智能体通过策略自己找路

文章目录 问题描述思路代码C 问题描述 描述 定义一个二维数组 N*M &#xff0c;如 5 5 数组下所示&#xff1a; int maze[5][5] { 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫&#xff0c;其中的1表示墙壁&#xff0…...

测试报告模板一

XX测试报告 文档作者: 编写日期: 项目经理: 批准日期: 文档修改纪录表 日期 制修人 修改内容描述 1. 测试项目描述 1.1 测试描述 项目名称...

抖音账号矩阵系统源码/技术开发搭建私有化部署开源

抖音SEO矩阵系统是基于抖音平台的搜索引擎优化技术的一种系统&#xff0c;其主要作用是通过一系列的技术手段&#xff0c;提高抖音视频的曝光和排名&#xff0c;使其获得更多的流量和粉丝。在本文中&#xff0c;我们将介绍抖音SEO矩阵系统的开发技术&#xff0c;包括系统设计、…...

OpenSSL加密解密文件

OpenSSL是一个开源的用以实现SSL协议的产品&#xff0c;它主要包括了三个部分&#xff1a;密码算法库、应用程序、SSL协议库。Openssl实现了SSL协议所需要的大多数算法。 下面介绍使用Openssl进行文件的对称加密操作。 一、Openssl支持的加密算法有&#xff1a; -aes-128-cbc…...

PAT A1070 Mooncake

1070 Mooncake 分数 25 作者 CHEN, Yue 单位 浙江大学 Mooncake is a Chinese bakery product traditionally eaten during the Mid-Autumn Festival. Many types of fillings and crusts can be found in traditional mooncakes according to the regions culture. Now gi…...

MyBatis- plus

实战总结 1.批量插入性能 1.批量插入性能差的原因 使用saveBatch()方法时&#xff0c; MySQL JDBC驱动在默认情况下会无视executeBatch()语句&#xff0c;把我们期望批量执行的一组sql语句拆散&#xff0c;一条一条地发给MySQL数据库&#xff0c;批量插入实际上是单条插入&a…...

Java --- 期末复习卷

一、单选题 1&#xff0e;所有Java应用程序主类必须有一个名叫( )的方法。[ ] A&#xff0e;method B&#xff0e;main() C&#xff0e;java() D&#xff0e;hello 2&#xff0e;编写并保存了一个Java程序文件之后&#xff0c;( )它。[ …...

File类与IO流相关面试知识(一)

一.java.io.File类 作用&#xff1a;它的作用是用来表示某个文件或文件夹&#xff08;文件夹又称为目录&#xff09; 如何用File类的对象表示一个文件或目录的呢&#xff1f; API文档中描述&#xff1a;文件和目录路径名的抽象表示形式 解释&#xff1a;如果要表示一个文件…...

009 - STM32学习笔记 - 中断

009 - STM32学习笔记 - 中断 这节的内容&#xff0c;野火的官方视频我反复看了好几次&#xff0c;但是感觉火哥在这块讲解的特别绕&#xff0c;理解起来很吃力&#xff0c;后来在看了一下其他老师的视频&#xff0c;结合一些书本资料和官方手册&#xff0c;才搞清楚STM32中断该…...

分享几种js格式化金额的方法

一、使用 Intl.NumberFormat 构造函数 这是 JavaScript 中格式化金额的最常见方法。Intl.NumberFormat()构造函数接受两个参数&#xff1a;语言环境和选项。语言环境是为其格式化金额的语言和地区。选项是一组控制金额格式的属性。例如&#xff0c;可以使用样式属性来指定货币…...

圣墟传说H5手工端搭建架设教程

圣墟传说H5手工端搭建架设教程 大家好&#xff0c;我是艾西。今天给大家带来的游戏是由小说改编而来的大型玄幻MMORPG仙侠手游&#xff0c;也是比较老的游戏了虽然你可能没有怎么听过&#xff0c;但总会有一批喜欢的玩家热衷于它。 那么让我们直接进入正题开始操作&#xff1…...

编程(40)----------单例模式

在简单总结单例模式之前, 需要了解一下背景知识-----为何会有单例模式? 想象一个这样的场景, 打游戏的时候, 尝试很多次, 都未通关. 这种情况下是否会考虑查一下攻略? 一个好的攻略甚至可能连每一关的每一个场景由多少只怪物都说的清清楚楚. 再比如, 在以前上学的时候, 为了…...

Java开发 - 让你少走弯路的Redis主从实现单节点哨兵模式

前言 前一篇中&#xff0c;我们讲解了Redis主从的搭建方式&#xff0c;其实很简单呐有木有&#xff0c;都是配置&#xff0c;连句代码都没有&#xff0c;是不是感觉高估了Redis主从的搭建方式&#xff1f;哈哈&#xff0c;没关系&#xff0c;跟着博主&#xff0c;包你全会。今…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...