OpenCV图像算术位运算
一 图像相加
import cv2
import numpy as npgirl=cv2.imread('./2037548.jpg')#图像的加法运算就是矩阵的加法运算
#因此加法运算的两张图必须是相等的print(girl.shape)img=np.ones((1920,1080,3),np.uint8)*50
cv2.imshow('girl',girl)
result=cv2.add(girl,img)
cv2.imshow('result',result)
cv2.waitKey(0)
二 图像减法运算
subtract(A,B)
含义是A减B
import cv2
import numpy as npgirl=cv2.imread('./2037548.jpg')#图像的加法运算就是矩阵的加法运算
#因此加法运算的两张图必须是相等的print(girl.shape)img=np.ones((1920,1080,3),np.uint8)*50
cv2.imshow('girl',girl)
result=cv2.subtract(girl,img)
cv2.imshow('result',result)
cv2.waitKey(0)
三 图像的融合
addWeigthed(A,alpha,B,bate,gamma)
alpha和beta是权重
gamma 静态权重
四 图像位运算
import cv2
import numpy as np# 创建一张图片
img=np.zeros((200,200),np.uint8)img[50:150,50:150]=255new_img=cv2.bitwise_not(img)cv2.imshow('img',img)cv2.imshow('new_img',new_img)cv2.waitKey(0)
五 图像的与运算
import cv2
import numpy as np# 创建一张图片
img=np.zeros((200,200),np.uint8)
img2=np.zeros((200,200),np.uint8)img[20:120,20:120]=255
img2[50:150,50:150]=255new_img=cv2.bitwise_and(img,img2)cv2.imshow('img',img)cv2.imshow('new_img',new_img)cv2.waitKey(0)
六 图像的或与异或运算
bitwise_or(img1,img2)
bitwise_xor(img1,img2)
总结 添加水印
# 引入一副图片
# 要有一个Logo,需要自己创建
# 水印添加,在什么地方添加,在添加的地方变成黑色
# 利用add 将logo 与图形叠加到一起import cv2
import numpy as npgirl=cv2.imread('./2037548.jpg')# 创建LOGO
logo=np.zeros((200,200,3),np.uint8)
mask=np.zeros((200,200),np.uint8)# 绘制LOGO
logo[20:120,20:120]=[0,0,255]
logo[80:180,80:180]=[0,255,0]mask[20:120,20:120]=255
logo[80:180,80:180]=255# 对mask按位取反
m=cv2.bitwise_not(mask)# 选择girl添加logo的位置
roi=girl[0:200,0:200]# 与m进行操作
tmp=cv2.bitwise_and(roi,roi,mask=m)
dst=cv2.add(tmp,logo)girl[0:200,0:200]=dstcv2.imshow('girl',girl)
#cv2.imshow('tmp',tmp)
#how('mask',mask)
#cv2.imshow('logo',logo)
cv2.waitKey(0)
相关文章:
OpenCV图像算术位运算
一 图像相加 import cv2 import numpy as npgirlcv2.imread(./2037548.jpg)#图像的加法运算就是矩阵的加法运算 #因此加法运算的两张图必须是相等的print(girl.shape)imgnp.ones((1920,1080,3),np.uint8)*50 cv2.imshow(girl,girl) resultcv2.add(girl,img) cv2.imshow(result…...
【调试笔记-20240611-Linux-配置 OpenWrt-23.05 支持泛域名 acme 更新】
调试笔记-系列文章目录 调试笔记-20240611-Linux-配置 OpenWrt-23.05 支持泛域名 acme 更新 文章目录 调试笔记-系列文章目录调试笔记-20240611-Linux-配置 OpenWrt-23.05 支持泛域名 acme 更新 前言一、调试环境操作系统:Windows 10 专业版调试环境调试目标 二、调…...
ssm宠物网站系统-计算机毕业设计源码07183
摘 要 在信息飞速发展的今天,网络已成为人们重要的信息交流平台。宠物网站每天都有大量的信息需要通过网络发布,为此,本人开发了一个基于B/S(浏览器/服务器)模式的宠物网站系统。 该系统以JJava编程语言、MySQL和SSM框…...
想上币的项目方怎么去选择交易所
在区块链和加密货币蓬勃发展的今天,许多项目方都渴望通过交易所上线其代币,以扩大影响力、提升流动性和市场认可度。然而,选择合适的交易所并非易事,它关乎项目的未来发展和市场地位。那么,对于有上币意向的项目来说&a…...
mysql如何创建并执行事件?
在 MySQL 中,事件调度器允许您在指定的时间间隔执行 SQL 语句。这类似于操作系统中的计划任务(如 cron 作业)。 前提条件 确保您的 MySQL 服务器已启用事件调度器。可以通过以下命令检查并启用: SHOW VARIABLES LIKE event_scheduler;如果返回的值是 OFF,可以通过以下命…...
k8s环境里查看containerd创建的容器对应的netns
如何查看containerd创建的容器对应的netns 要查看由 containerd 创建的容器对应的网络命名空间(netns),你可以遵循以下步骤。这个过程涉及到了解容器的 ID,以及使用 ctr 命令或其他方式来检索容器的详细信息。这里假定你已经具备…...
学习笔记——网络管理与运维——SNMP(基本配置)
四、SNMP基本配置 1、SNMP配置举例 整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度&#x…...
CMake从安装到精通
目录 引言 1. CMake的安装 2. CMake的原理 3. CMake入门 3.1 CMakeLists.txt与注释 3.2 版本指定与工程描述 3.3 生成可执行程序 3.4 定义变量与指定输出路径 3.5 指定C标准 3.6 搜索文件 3.7 包含头文件 4. CMake进阶 4.1 生成动静态库 4.2 链接动静态库 4.…...
【C++】认识STL
【C】认识STL STL的概念STL的版本STL的六大组件STL的三个境界STL的缺陷 STL的概念 SLT(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个保罗数据结构与算法的软件框架。 STL的版本 原…...
力扣 50.pow(x,n)
class Solution { public: double quickMul(double x,long long N){ if(N0) return 1; double valuequickMul(x,N/2); return N%20?value*value:value*value*x; } double myPow(double x, int n) { long long Nn; return N>0?quickMul(x, N):1.0/quickMul(x, N); } };...
R可视化:微生物相对丰度或富集热图可视化
欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者Xiao hong书:生信学习者知hu:生信学习者CDSN:生信学习者2介绍 热图(Heatmap)是一种数据可视化方法,它通过颜色的深浅或色调的变化来展示数据的分布和密度。在微生物学领域,热图常用于表示微生物在不同分组(如…...
Unity Maximum Allowed Timestep的说明
Maximum Allowed Timestep的说明 关于Maximum Allowed Timestep这个配置的说明,Unity有一份官方的说明。 Time-maximumDeltaTime - Unity 脚本 API 结合Unity的函数执行顺序,我们可以简单理解为: FixedUpdate在1次Update可能会执行N次&am…...
长短期记忆神经网络(LSTM)的回归预测(免费完整源代码)【MATLAB】
LSTM(Long Short-Term Memory,长短期记忆网络)是一种特殊类型的递归神经网络(RNN),专门用于处理和预测基于时间序列的数据。与传统RNN相比,LSTM在处理长期依赖问题时具有显著优势。 LSTM的基本…...
关于 python request 的 response 返回 b‘\xa3\xff\xff\x11E .....‘ 类型的数据的解决方案
最近写开发一个爬虫, 程序在本地好好的,返回的是正常的 html, 但是到了生产环境,不知道为什么返回的是一堆乱码 长这样: 查了好几天都没有进展, 对其进行各种转码均无效 今天终于找到解决办法了ÿ…...
后端高频面试题分享-用Java判断一个列表是否是另一个列表的顺序子集
问题描述 编写一个函数,该函数接受两个列表作为参数,判断第一个列表是否是第二个列表的顺序子集,返回True或False。 要求 判断一个列表是否是另一个列表的顺序子集,即第一个列表的所有元素在第二个列表需要顺序出现。列表中的元…...
【数据初步变现】论自助BI在数字化转型中如何赋能业务
引言:数字化转型要求企业更加依赖数据来指导业务决策。自助BI作为数据分析的重要工具,能够迅速、准确地从海量数据中提取有价值的信息,为企业的战略规划和业务执行提供有力支持。在数字化时代,企业需要快速响应市场变化并优化业务…...
Python 学习 第二册 第14章 网络编程
----用教授的方式学习 目录 14.1 几个网络模块 14.1.1 模块 socket 14.1.2 模块 urllib 和 urllib2 14.1.3 其他模块 14.2 SocketServer 及相关的类 14.3.1 使用 SocketServer 实现分叉和线程化 14.3.2 使用 select 和 poll 实现异步 I/O 14.4 Twisted 14.4.1 下载…...
微信 小程序应用,页面,组件的生命周期
组件生命周期 组件的生命周期:指的是组件自身的一些钩子函数,这些函数在特定的时间节点时被自动触发 组件的生命周期函数需要在 lifetimes 字段内进行声明 最重要的生命周期是 created attached detached 包含一个组件生命周期流程的最主要时间点 定…...
代码随想录算法训练营Day41|背包问题、分割等和子集
背包问题 二维 46. 携带研究材料(第六期模拟笔试) (kamacoder.com) dp数组有两维,横轴表示背包重量j(0-j),纵轴表示不同物品(0-i),dp[i][j]即表示从下标为[0-i]的物品…...
oracle SCHEDULER
从Oracle 10g开始,推荐使用DBMS_SCHEDULER包,因为它提供了更强大的功能和灵活性,包括更复杂的调度规则、依赖管理和事件驱动等 1. 用法 DBMS_SCHEDULER.CREATE_JOB (job_name IN VARCHAR2,job_type IN VARCHAR2,job_action IN VARCHAR2,…...
实现虚拟机的难点
一、背景 目前的虚拟机有很多,例如VMWare、VitrualBox、QEMU、JVM、Python虚拟机等等。 二、虚拟机的作用 在一台已有的计算机中,忽略实际操作系统种类和硬件的型号,用一些接口库来搭建一台用户想要的,虚拟的程序运行环境。 例如…...
JAVA-线程
先上图,有点长,比较碎,有xmind文件......,详细内容均在图片里介绍了,提供了PDF文件 1.线程简介 进程是操作系统中正在执行的不同的应用程序,例如:我们可以同时打开Word和记事本 线程是一个应用…...
代码随想录——电话号码的字母组合(Leetcode17)
题目链接 回溯 class Solution {List<String> res new ArrayList<String>();StringBuilder str new StringBuilder();HashMap<String, String> Sites new HashMap<String, String>();public List<String> letterCombinations(String digit…...
多款可观测产品全面升级丨阿里云云原生 5 月产品月报
云原生月度动态 云原生是企业数字创新的最短路径。 《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。 趋势热点 🥇 阿里云云原生产品负责人李国强:推进可…...
python实践笔记(三): 异常处理和文件操作
1. 写在前面 最近在重构之前的后端代码,借着这个机会又重新补充了关于python的一些知识, 学习到了一些高效编写代码的方法和心得,比如构建大项目来讲,要明确捕捉异常机制的重要性, 学会使用try...except..finally&…...
Excel VLOOKUP 使用记录
Excel VLOOKUP 使用记录 VLOOKUP简单使用 VLOOKUP(lookup_value,table_array,col_index_num,[range-lookup]) 下面是excel对VLOOKUP 的解释 lookup_value(查找值):要匹配查找的值 table_array(数据表)࿱…...
Spring Cloud Stream 消息驱动基础入门与实践总结
Spring Cloud Stream是用于构建与共享消息传递系统连接的高度可伸缩的事件驱动微服务框架,该框架提供了一个灵活的编程模型,它建立在已经建立和熟悉的Spring熟语和最佳实践上,包括支持持久化的发布/订阅、消费组以及消息分区这三个核心概念。…...
你好rust
第一次安装rust,记录一下笔记。 几年前就听说过rust,自己一直是个c爱好者,所以比较抵触rust,早年还有什么rust向上突破群。一直比较抵触,直到这几年rust已经渐渐深入到linux内核、云原生可观测以及zend社区当中&#x…...
STM32 printf 重定向到CAN
最近在调试一款电机驱动板 使用的是CAN总线而且板子上只有一个CAN 想移植Easylogger到上面试试easylogger的效果,先实现pritnf的重定向功能来打印输出 只需要添加以下代码即可实现 代码 #include <stdarg.h> uint8_t FDCAN_UserTxBuffer[512]; void FDCAN_p…...
jmeter性能优化之mysql监控sql慢查询语句分析
接上次博客:基础配置 多用户登录并退出jmx文件:百度网盘 提取码:0000 一、练习jmeter脚本检测mysql慢查询 随意找一个脚本(多用户登录并退出),并发数设置300、500后分别查看mysql监控平台 启动后查看,主要查看mysql…...
丰台b2c网站制作价格/小红书搜索关键词排名
1.1 函数指针 1.1.1 基本概念 程序运行期间,每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址(也称“入口地址”)。 我们可以将函数的入口地址赋给一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以调用这个函…...
wordpress破解插件/seo最新技巧
前言 最近在重温Pytorch基础,然而Pytorch官方文档的各种API是根据字母排列的,并不适合学习阅读。 于是在gayhub上找到了这样一份教程《Pytorch模型训练实用教程》,写得不错,特此根据它来再学习一下Pytorch。 仓库地址:…...
怎么查询网站所有关键词/北京官网seo
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼先上程序import java.util.Scanner;class SqList{private Object[] listElem;private int curLen;public int getCurLen(){return curLen;}public void setCurLen(int curLen){this.curLen curLen;}public Object[] getListElem()…...
腾脉网建站/怎么在网上做推广
1. 磁盘的结构 1.1 知识总览 1.2 磁盘、磁道、扇区 1.3 如何在磁盘中读 / 写数据 1.4 盘面 / 柱面 & 磁盘的物理地址 1.5 磁盘的分类 磁盘按不同的方式可分为若干类型:磁头相对于盘片的径向方向固定的,称为固定头磁盘,每个磁道一个磁头&…...
网站建设活动/seo外包 杭州
操作系统复习一,单项选择题1.在下列性质中,()不是分时系统的特征。a. 多路性b. 交互性c. 独占性d.成批性2.分时系统的响应与下列哪一个因素无关。()a. 时间片长短b. 系统时钟的频率c. 终端用户数d.主存和外存之间的信息交换量3. 所谓临界区是指()。a. 一个缓冲区b. …...
网站设置了自动登录怎么显示密码/最有效的15个营销方法
首先去官网下载MySQLhttps://dev.mysql.com/downloads/mysql/5.7.html#downloads我是下载的5.7.23 zip版本,解压到C:\mysql-5.7.23-winx64然后配置环境变量:变量名:MYSQL_HOME变量值:C:\mysql-5.7.23-winx64在Path变量值最前面添加…...