(笔记三)opencv图像基础操作
强调:本文只为学习记录做笔记
详细可参考opencv官网 :https://docs.opencv.org/4.1.1/d0/d86/tutorial_py_image_arithmetics.html
(1)将cv2的BGR模式改为RGB模式
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author: LIFEI
@time: 2023/8/29 10:24
@file: test3.py
@project: pythonProject
@describe: TODO
@# -------------------------------------------------(one)----------------------------------------------
@# -------------------------------------------------(two)----------------------------------------------
"""
import cv2
from matplotlib import pyplot as plt
import numpy as npimg = cv2.imread(r"D:\data\img.png")
img2 = img
plt.figure(1)
# 将cv2的BGR模式改为RGB模式
img1 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.subplot(121), plt.imshow(img, 'gray'), plt.title('BGR')
plt.subplot(122), plt.imshow(img1, 'gray'), plt.title('RGB')
# 必须要有
plt.show()

(2)获取图像的基础信息并更改图像像元值

print('shape:', img2.shape) # 获取图像的大小
print('dtype:', img2.dtype) # 获取图像的类型
print('chanel:', img2[200, 200]) # 获取图像的某个点的像素值
print(img2.item(200, 200, 0)) # = img[200,200,0]
img2.itemset((200, 200, 0), 100) # = img[200,200,0]=100
print('modify:', img2.item(200, 200, 0))
(3)拆分图像通道以及组合

img3 = img
b, g, r = cv2.split(img) # 拆分bgr通道
img4 = cv2.merge((r, g, b))
img5 = cv2.merge((g, b, r))
img6 = cv2.merge((r, r, b))
plt.figure(2)
plt.subplot(221), plt.imshow(img3), plt.title('BGR')
plt.subplot(222), plt.imshow(img4), plt.title('RGB')
plt.subplot(223), plt.imshow(img5), plt.title('GBR')
plt.subplot(224), plt.imshow(img6), plt.title('RRB')
plt.show()
(4)更改图像的某个区域

img7 = img1
R = img[100:300, 100:300]
R[:, :, 1:2] = 255
img7[200:400, 200:400] = R
plt.figure(3), plt.imshow(img7), plt.title('modify channels')
plt.show()
(5)更改图像大小以及两个图像进行叠加

img8 = img1
img9 = cv2.imread(r'D:\data\780.png')
img9 = cv2.cvtColor(img9, cv2.COLOR_BGR2RGB)
x,y,z = img1.shape
img9 = cv2.resize(img9,(y,x))
img8_img9 = cv2.addWeighted(img8, 0.6, img9, 0.4,0)
plt.figure(4)
plt.subplot(131),plt.imshow(img8), plt.title('img1')
plt.subplot(132),plt.imshow(img9), plt.title('img2')
plt.subplot(133),plt.imshow(img8_img9), plt.title('img3')
plt.show()
(6)按位运算

img2gray = cv2.cvtColor(img9, cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(img2gray, 120, 255, cv2.THRESH_BINARY)
mask_inv = cv2.bitwise_not(mask)
plt.figure(5)
plt.subplot(131), plt.imshow(img9), plt.title('ori')
plt.subplot(132), plt.imshow(mask, 'gray'), plt.title('gray')
plt.subplot(133), plt.imshow(mask_inv, 'gray'), plt.title('gray_inv')
plt.show()
相关文章:
(笔记三)opencv图像基础操作
强调:本文只为学习记录做笔记 详细可参考opencv官网 :https://docs.opencv.org/4.1.1/d0/d86/tutorial_py_image_arithmetics.html (1)将cv2的BGR模式改为RGB模式 #!/usr/bin/env python # -*- coding:utf-8 -*- ""&q…...
PHP入门及环境搭建 - XAMPP
文章目录 PHP简介搭建PHP环境(XAMPP)下载XAMPP安装XAMPP第1步:双击setup_xampp.bat检测第2步:启动Apache和MySQL第3步:浏览器访问内置的启动页面readme文档 - 必读运行Hello World程序下载并安装Eclipse for PHP编写Hello World程序参考目标: 1、了解PHP语言 2、搭建PHP开…...
开学季ipad手写笔什么牌子好?第三方电容笔推荐
自从ipad之类的平板电脑上出现了电容笔,电容笔就成功的取代了我们的手指,大大加快了我们的写作速度。不过,由于苹果pencil自带的先进芯片,导致其售价一直很高,给很多人,特别是学生,造成了很大的…...
【力扣】62. 不同路径 <动态规划>
【力扣】62. 不同路径 一个机器人位于一个 m m m x n n n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条…...
【Python小项目】Python的GUI库Tkinter实现随机点名工具或抽奖工具并封装成.exe可执行文件
文章目录 一、项目背景二、需求分析UI界面设计如下:具体需求如下:二、实现思路三、项目关键代码读取excel中的人员名单实现随机滚动抽取主函数中Tkinter的界面相关操作实现窗口相关背景图设置组件相关完整代码四、将程序封装成.exe可执行文件将代码转换成.py文件五、总结与拓…...
【MySql】mysql之基础语句
一、常用的数据类型 类型解释举例int整型用于定义整数类型的数据(1、2、3、4、5…)float单精度浮点(4字节32位)准确表示小数点后六位double双精度浮点(8字节64位)小数位更多,更精确char固定长度…...
使用API调用获取商品数据的完整方案
在电子商务应用程序中,商品详情接口是不可或缺的一部分。它用于从电商平台或自己的数据库中获取商品数据,并将其提供给应用程序的其他部分使用。本文将详细介绍如何设计一个完整的商品详情接口方案,其中包括使用API调用来获取商品数据的过程。…...
来看看入门级别的室内设计创意是怎么样构成的
在这个世界上,信息源源不断地输送给我们,数字通信成为常态,对话的艺术正在逐渐消失;衡量一个人社交成功与否的最佳标准变为点赞数、粉丝数和高参与率;Ai人工智能引发了更快节奏的工作流程,工作要求越来越高…...
Go 面向对象(匿名字段)
概述 严格意义上说,GO语言中没有类(class)的概念,但是我们可以将结构体比作为类,因为在结构体中可以添加属性(成员),方法(函数)。 面向对象编程的好处比较多,我们先来说一下“继承…...
生成式AI,赋能数字劳动力的关键工具
人们认为,生成式人工智能是一种可以让他们用自己的话来提问或生成副本和图像的工具。事实也是如此,人工智能在这两方面上都做的非常好,但让人意想不到的是,它还蕴含着改变我们个人和专业工作的巨大潜力,能帮我们访问、…...
python提取邮件的附件,以excel为例
配置邮箱、读取基本的邮件内容请参考:python读取并解析邮箱邮件,读取邮件主题、内容、时间 以excel为例: 获取邮件: email_value_config {imap_server: imap.exmail.qq.com, username: xxxxxxxx.com, password: xxxxx, }# 连接…...
ZooKeeper技术内幕
文章目录 1、系统模型1.1、数据模型1.2、节点特性1.2.1、节点类型 1.3、版本——保证分布式数据原子性操作1.4、 Watcher——数据变更的通知1.5、ACL——保障数据的安全1.5.1、权限模式:Scheme1.5.2、授权对象:ID1.5.3、权限扩展体系 2、序列化与协议2.1…...
乱糟糟的YOLOv8-detect和pose训练自己的数据集
时代在进步,yolo在进步,我还在踏步,v8我浅搞了一下detect和pose,记录一下,我还是要吐槽一下,为啥子这个模型就放在了这个文件深处,如图。 以下教程只应用于直接应用yolov8,不修改。…...
【Nginx】Nginx $remote_addr和$proxy_add_x_forwarded_for变量详解
$remote_addr 代表客户端IP。注意,这里的客户端指的是直接请求Nginx的客户端,非间接请求的客户端。假设用户请求过程如下: 用户客户端--发送请求->Nginx1 --转发请求-->Nginx2->后端服务器那么,默认情况下,…...
MySQL自动删除binlog日志
MySQL的二进制日志(binlog)是MySQL用于复制和恢复操作的日志。随着时间的推移,binlog文件可能会快速增长并占用大量的磁盘空间。为了避免磁盘空间耗尽,您可以配置MySQL自动删除旧的binlog文件。 以下是自动删除binlog文件的方法&…...
C++ 文件和流
iostream 标准库提供了 cin 和 cout 方法,用于从标准输入读取流和向标准输出写入流。而从文件中读取流或向文件写入流,需要用到fstream标准库。在 C 中进行文件处理时,须在源代码文件中包含头文件 <iostream> 和 <fstream>。fstr…...
案例分享:西河水库安全监测信息化系统实施方案
一、项目概述1.1项目背景西河水库信息化工作已开展多年,但是由于西河水库监测设备都已经老化或者损坏,现有设备已渐渐不能满足新时期西河水库信息化和现代化发展需求。因此,灌区管理局拟在运用现代信息和通信技术手段感测、分析、整合水库运行…...
使用Angular和MongoDB来构建具有登录功能的博客应用程序
Angular 是一个一站式框架,用于使用相同的可重用代码创建移动和 Web 应用程序。使用 Angular,您可以将整个应用程序划分为可重用的组件,从而更轻松地维护和重用代码。 在本教程系列中,您将学习如何开始使用 Angular 和 MongoDB 作…...
ChatGPT 与前端技术实现制作大屏可视化
像这样的综合案例实分析,我们可以提供案例,维度与指标数据,让ChatGPT与AIGC 帮写出完整代码,并进行一个2行2列的布局设置。 数据与指令如下: 商品名称 销量 目标 完成率 可乐 479 600 79.83% 雪碧 324 600 54.00% 红茶 379 600 63.…...
视频监控/视频云存储EasyCVR平台接入华为ivs3800平台提示400报错,如何解决?
开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,视频云存储/安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频…...
如何免费打造终极跨平台音乐播放器:一站式解决你的所有音乐需求
如何免费打造终极跨平台音乐播放器:一站式解决你的所有音乐需求 【免费下载链接】VutronMusic 高颜值的第三方网易云播放器;支持流媒体音乐,如navidrome、jellyfin、emby;支持本地音乐播放、离线歌单、逐字歌词、桌面歌词、Touch …...
终极指南:如何在Mac上免费快速制作Windows启动盘?
终极指南:如何在Mac上免费快速制作Windows启动盘? 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI & L…...
从一次任务到一次进化:完整拆解 Skill 创建、复用、修补链路
点击上方 前端Q,关注公众号回复加群,加入前端Q技术交流群写到这一篇,第二章的拼图终于齐了。 前面四篇我把 Hermes 的自学习系统拆成了 4 个零件:Memory(记知识)、Skill(记做法)、Nu…...
动手实验:在QEMU上模拟调试ATF安全启动全流程(含常见错误排查)
在QEMU虚拟环境中实战调试ATF安全启动全流程指南 1. 实验环境搭建与工具链配置 构建ATF调试环境需要精心准备工具链和依赖组件。我们推荐使用Ubuntu 20.04 LTS作为基础系统,这是目前对ARM虚拟化支持最完善的Linux发行版之一。以下是关键组件的版本要求: …...
ElevenLabs印地文语音质量崩塌真相(印地语TTS失效深度溯源):7类发音错误+5个未公开参数修复方案
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs印地文语音质量崩塌的全局现象与影响评估 近期,ElevenLabs平台在印地语(Hindi)TTS合成任务中出现系统性语音质量退化,表现为音素错读、韵律断裂…...
承压含水层中变流量抽水试验井流动力学模型与参数反演方法【附算法】
✨ 长期致力于变流量、抽水试验、参数反演、井损、粒子群优化算法研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)线性衰减变流量抽水试验理论模型与半…...
wangEditor公式插件kityformula的‘幽灵注册’与按钮刷新:两个容易被忽略的Vue组件级问题
wangEditor公式插件kityformula的‘幽灵注册’与按钮刷新:两个容易被忽略的Vue组件级问题 在Vue3项目中集成wangEditor富文本编辑器并引入kityformula公式插件时,开发者往往会遇到一些看似诡异的问题。这些问题表面上是功能异常,实则隐藏着对…...
母线槽核心部件解析 —— 高纯铜导体与绝缘层的技术价值
在低压配电系统中,母线槽凭借大电流传输能力、高安全性及长寿命特性,成为大型基建、工业厂房、商业建筑等场景的核心配电设备。 扬中金展电气深耕母线槽研发生产 16 年,以严苛的材质标准与精密工艺,打造高可靠母线槽产品ÿ…...
如何通过智能包装系统提升全链条的数字化与协同效率?
本段聚焦全链条数字化升级的核心路径,通过 智能包装系统实现 原材料到成品的数据共享与流程对齐。以原材料入库、生产、成品出库为主线,建立统一的数据模型、模块化接口与可追溯闭环,推动 协同优化与成本控制。结合 中科天工智能包装设备与 中…...
模型替换易,工作流锁定难!AI 锁定效应转移,企业决策何去何从?
模型替换易,工作流锁定难模型替换正变得越来越容易,但围绕模型的操作、集成和治理机制却难以更换。近日,普华永道(PwC)宣布为 3 万名员工提供有关 Anthropic 公司 Claude 模型的培训和认证,并围绕该模型为银…...
