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

news2024/10/6 12:29:42

👨‍💻个人简介: 深度学习图像领域工作者
🎉工作总结链接: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 cv2

img = 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)

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

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

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

相关文章

Redis5.0+ Redis集群水平扩容|节点删除

文章目录 1. 背景2. Redis集群水平扩展2.1 启动集群2.2 连接其中一个节点2.3 配置新节点2.4 启动新节点2.5 配置8007节点加入集群,成为主节点2.6 增加子节点2.7 分配hash槽2.8 检查 Redis 集群 3. 节点删除4. redis集群命令帮助5. 参考文献 1. 背景 之前搭建了Redi…

硬件系统工程师宝典(26)-----四种BJT应用电路分析

各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。上篇我们说到晶体三极管(BJT)的几种应用电路:三极管的输入端钳制电压电路、BJT电平转换电路、Boost升压电路、图腾…

WGCNA | 不止一个组的WGCNA怎么分析嘞!?~(二)(共识网络分析-第二步-构建网络与模块-Blockwise)

1写在前面 临床工作越来越忙了,更新的频率也开始降低了,希望各位小伙伴可以理解一下。😭 最近看到塞尔达-王国之泪发售了,真的是想买一个,但想想根本没有时间去玩,买回来只能吃灰。🥲 想问问小伙…

G0第22章 :获取参数、文件上传、重定向、Gin路由、Gin中间件、运行多个服务

05 获取参数 1、获取querystring参数 querystring 指的是URL中的 ? 后面携带的参数,例如: /user/search?username小王子&address天津 。获取请求querystring参数的方法如下: package mainimport ("github.com/gin-gonic/gin&qu…

Git基础笔记(只含常用命令)

1.Git基本概念 1.git三区 工作区 -->git add 暂存区 --> git commit版本区域 暂存区用来存放临时文件,相当于只编辑没有保存 2.文件状态 命令 git status 查看文件状态 大体来说有被版本管理和没被版本管理两种状态 a.txt 执行了git add 3.git本地仓库命令 g…

面试篇:SpringCloud

一、SpringCloud常见的组件有什么? 1、常见微服务功能架构图 2、阿里巴巴SpringCloud常用组件 注册中心/配置中心:Nacos负载均衡:Ribbon服务调用:Feign服务保护:Sentinel服务网关:Gateway 二、服务注册…

阿里云IoT物联网平台

IoT物联网平台 一、工作原理 1、MQTT(Message Queuing Telemetry Transport) 是一种轻量级的消息传输协议,专门设计用于物联网(IoT)应用中的通信。它是一种发布/订阅(publish/subscribe)模式的…

【OpenCV DNN】Flask 视频监控目标检测教程 04

欢迎关注『OpenCV DNN Youcans』系列,持续更新中 【OpenCV DNN】Flask 视频监控目标检测教程 04 3.4 用Flask构建流媒体服务器3.4.1 流媒体服务器基本知识3.4.2 用Flask搭建流媒体服务器 Flask04 完整例程cvFlask04 项目的文件树cvFlask04.pyindex1.html 本系列从零…

零基础web安全入门学习路线

相信很多新手都会遇到以下几个问题 1.零基础想学渗透怎么入手? 2.学习web渗透需要从哪里开始? 这让很多同学都处于迷茫状态而迟迟不下手,小编就在此贴给大家说一下web渗透的学习路线,希望对大家有帮助 同时本博客也会按照学习路…

【Java EE 初阶】网络编程套接字TCP的实现

目录 1.实现一个TCP的回显服务 1.Sever Socket API 1.SeverSocket 构造方法 2.Sever Socket方法 2.Socket API 1.Socket的构造方法 2.Socket 方法 那么怎么实现让服务器可以处理多个客户端呢? 服务端代码: 客户端代码: 1.实现一个TC…

【Python】玩转lambda表达式

知识目录 一、写在前面✨二、lambda匿名函数三、泛化函数四、总结撒花😊 一、写在前面✨ 大家好!我是初心,又见面了! 今天跟大家分享的文章是 玩转Python中的lambda表达式 ,希望能帮助到大家!本篇文章收录…

三十三、数学知识——质数(朴素筛法 + 埃氏筛法 + 线性筛法)

质数与质数筛法算法主要内容 一、基本思路1、质数质数的判定——试除法(复杂度固定位 O(sqrt(n)) ) 2、分解质因数——试除法(最坏是O(sqrt(n)))3、朴素筛法——筛的是倍数4、埃氏筛法——朴素筛法优化5、线性筛法——n&#xff0…

刷题---C语言

目录 前言: 一.刷题(1) 1.1打印X图案 1.2打印带空格直角三角形图案 1.3小乐乐改数字 1.4牛牛的线段 2.刷题(2) 2.1判断奇偶性 2.2及格分数 2.3kiki算术 2.4(ab-c)*d 2.5KiKi算期末成…

亿级大表拆分过程记录

两年前接手公司的财务系统的开发和维护工作。在系统移交的初期,笔者和团队就发现,系统内有一张5000W的大表。 跟踪代码发现,该表是用于存储资金流水的表格,关联着众多功能点,同时也有众多的下游系统在使用这张表的数据…

Doris-----Aggregate 聚合模型及案例实现

Aggregate 模型 是相同key的数据进行自动聚合的表模型。表中的列按照是否设置了 AggregationType,分为 Key(维度列)和 Value(指标列),没有设置 AggregationType 的称为 Key,设置了 Aggregation…

外包实在是太坑了,干了三年,感觉人都废了

先说一下自己的情况,专科生,19年通过校招进入杭州某个外包软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了3年的功…

【JMeter中的View Result Tree显示中文乱码】

JMeter中的View Result Tree显示中文乱码 检查JMeter的安装目录下的bin文件夹中的jmeter.properties配置文件 用记事本打开并搜索:sampleresult.default.encoding 找到该行 改成sampleresult.default.encodingutf-8 修改后重启JMeter ok, 解决乱码 附加 : 下载 J…

【Linux高级 I/O(7)】初识文件锁——fcntl()方法及其独占性、共享性实验(附全文代码)

fcntl()函数在前面系列内容中已经多次用到了&#xff0c;它是一个多功能文件描述符管理工具箱&#xff0c;通过配合不同的 cmd 操作命令来实现不同的功能。为了方便述说&#xff0c;这里再重申一次&#xff1a; #include <unistd.h> #include <fcntl.h>int fcntl(…

大模型对世界的改变,从一时一地,到无处不在、无时不有

作者 | 曾响铃 文 | 响铃说 大模型正在中国遍地开花&#xff0c;做过的没做过的都要过来参合一下。 汹涌浪潮中&#xff0c;不免有更多人开始关注那个最先发布的文心一言。 全球科技大厂中第一个发布GPT大模型产品的百度&#xff0c;在刚刚的中关村论坛上透露了一些文心一言…

nodejs连接mysql

npm i express #node后端框架npm i corsnpm i mysqlconst app require(express)(); const cors require(cors); const port 5000; const mysql require(mysql) //引入mysql 模块app.use(cors({}))const conn mysql.createConnection({user: root,password: qwertyuiop…