图像基本运算

news2024/11/19 22:54:01

图像基本运算

图像算数运算:

1)图像加法

示例代码:
import cv2
import numpy as np

img1 = cv2.imread(‘…/datas/fengjing1.png’)#(546, 820, 3)
img2 = cv2.imread(‘…/datas/logo.png’)#(512, 512, 3)
print(img1.shape)
img1resize = cv2.resize(img1, (244, 300) )

dst = cv2.add(img1resize, img2)
dstw = cv2.addWeighted(img1resize, 0.6, img2, -1, 100)
dst2 = img1resize + img2
cv2.imshow(‘add’, np.hstack([dst, dstw,dst2 ]))
cv2.waitKey(0)
在这里插入图片描述

cv2.addWeighted() # 权重加和

2)图像减法

示例代码:
import cv2
import numpy as np
img1 = cv2.imread(‘…/datas/fengjing1.png’)#(546, 820, 3)
img2 = cv2.imread(‘…/datas/logo.png’)#(512, 512, 3)
print(img1.shape)
img1resize = cv2.resize(img1, (244, 300) )
dstw = cv2.addWeighted(img1resize, 0.6, img2, -1, 100)
dst2 = cv2.subtract(img1resize, img2)
cv2.imshow(‘sub’, np.hstack([dstw, dst2]))
cv2.waitKey(0)
在这里插入图片描述

cv2.subtract() #图像相减

3)图像乘除法

dst = 2 * img1
dst = img1/3

图像逻辑运算:

1)图像相与

2)图像相或

3)图像异或

照片裁剪示例代码:
import cv2
import numpy as np
img1 = cv2.imread(‘…/datas/fengjing1.png’)
img2 = cv2.imread(‘…/datas/logo.png’)
h, w, c = img2.shape
roi = img1[0:h, 0:w]
cv2.imshow(‘roi’, roi)
cv2.waitKey(0)
在这里插入图片描述
应用示例代码:

import cv2
import numpy as np
img1 = cv2.imread(‘…/datas/fengjing1.png’)
img2 = cv2.imread(‘…/datas/logo.png’)
h, w, c = img2.shape
roi = img1[0:h, 0:w]
test = cv2.bitwise_and(roi, roi)
#二值化
img2gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
retval, mask = cv2.threshold(img2gray, 230, 255, cv2.THRESH_BINARY)
masks = cv2.merge([mask, mask, mask])# np.stack([mask, mask, mask], axis=2)
#roi与roi进行逻辑与,使用mask(获取背景)
dst_bg = cv2.bitwise_and(roi, roi, mask=mask)
#获取前景
mask_inv = cv2.bitwise_not(mask)
masks_inv = np.stack([mask_inv, mask_inv, mask_inv], axis=2)
#cv2.imshow(‘logo and mask’, np.hstack([img2,masks_inv, masks]))
#cv2.waitKey(0)
dst_fg = cv2.bitwise_and(img2, img2, mask=mask_inv)
#cv2.imshow(‘dst_fg’, np.hstack([img2, masks_inv, dst_fg]))
#cv2.waitKey(0)
dst1 = dst_bg + dst_fg
dst2 = cv2.add(dst_bg, dst_fg)
img1[0:h, 0:w] = dst1
#cv2.imshow(‘and’, np.hstack([roi, dst_bg, dst_fg, dst1, dst2]))
#cv2.waitKey(0)
cv2.imshow(‘result’, img1)
cv2.waitKey(0)
在这里插入图片描述

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

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

相关文章

4.微服务项目实战---Sentinel--服务容错

4.1 高并发带来的问题 在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络 原因或者自身的原因,服务并不能保证服务的 100% 可用,如果单个服务出现问题,调用这个服务…

活动报名|X-DecoderSEEM:从开放词库的图像理解到像素分割,如何用一个模型做N个任务理解M个模态...

2023年04月27日(星期四)11:00-12:00,由智源社区主办的「智源LIVE 第39期线上活动:X-Decoder&SEEM:从开放词库的图像理解到像素分割,如何用一个模型做N个任务理解M个模态本期活动将在线举办,…

echarts 环形图占比_环形图_仪表盘

Echarts 常用各类图表模板配置 注意: 这里主要就是基于各类图表,更多的使用 Echarts 的各类配置项; 以下代码都可以复制到 Echarts 官网,直接预览; 图标模板目录 Echarts 常用各类图表模板配置一、环形图占比二、环形…

ACT-1,才是你更想要的人工智能助手

2022年开年以来,人工智能发展迅速,Transformers 的广泛应用使得语言、代码和图像生成等领域取得了巨大进展。在这个背景下,Adept 公司推出了第一个大型模型 Action Transformer (ACT-1),构建一个能在数字世界中采取行动的模型。 该…

〖ChatGPT实践指南 - 零基础扫盲篇①〗- ChatGPT简介、应用领域 及 哪些人应该为ChatGPT 的出现感到恐惧

文章目录 ⭐ 什么是 ChatGPT⭐ OpenAI 团队⭐ 详解 ChatGPT 聊天机器人⭐ ChatGPT的应用领域⭐ 作为程序员应该为 ChatGPT 的出现感到恐惧吗 有感于最近 ChatGPT 大火的原因,我这低眉顺眼的XXX也开始来蹭热度了。没办法,这玩意儿的热度太火了&#xff0c…

华为OD机试真题(Java),字符串加解密(100%通过+复盘思路)

一、题目描述 对输入的字符串进行加解密,并输出。 加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a; 当内容是数字时则把该数字加1&#…

JAVAweb开发学习

六、MybatisPlus快速上手 数据库操作 注意!注意!注意!springboot版本选择2.7.2 1.ORM介绍(对象关系映射) 既包含存储,又包含映射。将java类映射到数据库 2.MybatisPlus介绍 ORM框架 数据库操作来啦…

MySQL: 更改(删除)表名和字段

目录 自动添加表的属性: 更改表名和字段: 更改表名: 更改字段数据类型: 修改字段名: 添加字段: 删除字段: 修改字段排列位置: ​编辑 删除表的外键约束: 删除表&…

4月20日作业

#include <iostream> #include <cstring> using namespace std; //定义类 class myString { private: char *str; int size; public: //无参构造 myString():size(32) { str new char[size]; cout << "无参构造" << endl; } //有…

低代码开发重要工具:jvs-logic(逻辑引擎)能力扩展及代码集成

逻辑引擎动态加载执行 介绍下逻辑引擎如何实现配置规则的动态加载 逻辑引擎的规则动态加载是指在逻辑引擎运行时&#xff0c;可以根据特定的条件或触发事件&#xff0c;动态地加载或卸载规则的功能。这种功能可以帮助用户根据不同的业务需求或运行环境&#xff0c;快速调整或…

用python写游戏:《外星人入侵》给游戏添加记分功能

项目需求&#xff1a; 在游戏《外星人入侵》中&#xff0c;玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船&#xff0c;还可使用空格键进行射击。游戏开始时&#xff0c;一群外星人出现在天空中&#xff0c;他们在屏幕中向下移动。玩家的任务是射…

骨传导耳机的原理是什么,推荐几款热门的骨传导耳机

骨传导耳机的出现&#xff0c;彻底改变了传统耳机的音质、佩戴方式、听音体验&#xff0c;让我们能在享受音乐的同时&#xff0c;还能听到外界环境的声音&#xff0c;在开车、骑行、跑步时佩戴也非常安全。骨传导耳机作为新兴产品&#xff0c;已经进入了快速发展的阶段。今天我…

nodejs+vue 文旅旅游公司智能管理OA系统

通过本次设计&#xff0c;让我学到了更多的知识&#xff0c;而且在设计中会有一些问题出现&#xff0c;最后通过查阅资料和在老师和同学的帮助下完成了系统的设计和开发&#xff0c;使得这次系统的开发非常的有意义。同时通过这次系统的设计也让我明白了自己在哪方面有不足&…

把ChatGPT训练成你的得力助手

在调教chatgpt时&#xff0c;我们大部分的时候都需要一个好的学术翻译官&#xff0c;但是在他成为学术翻译官之前我们有很多规定要说明&#xff0c;比如不用回答我的问题&#xff0c;不用计算公式等。我将以下命令要求集成&#xff0c;在使用的时候只需要你发给它这段话&#x…

FL Studio有中文版吗?如何下载最新V21版本

FL Studio是一款功能强大的数字音频工作站&#xff08;DAW&#xff09;&#xff0c;它广泛应用于音乐创作和音乐制作领域。在使用FL Studio时本文将详细探讨FL Studio的功能特点的重要性。 一、FL Studio是什么软件 FL Studio是由比利时软件公司Image-Line开发的音…

电脑系统错误怎么办?您可以看看这5个方法!

案例&#xff1a;电脑出现系统错误该如何解决&#xff1f; 【这几天长时间使用我的电脑&#xff0c;导致它的系统出现了错误。有没有小伙伴知道如何解决电脑系统出错的问题&#xff1f;求一个能快速解决的方法。】 电脑系统出现错误是使用电脑时难免会遇到的问题之一&#xf…

性能测试(LoadRunner)

文章目录 1. 性能测试概述2. 常见的性能指标3. 性能测试的分类4. loadRunner 工具的介绍5. 使用 VUG4.1 打开 LR 自带的 web 系统4.2 编写性能测试脚本 6. 性能测试脚本的增强6.1 事务&#xff08;lr_start/end_transaction&#xff09;6.2 集合点&#xff08;lr_rendzvous&…

SpringCloudAlibaba服务注册与配置中心——Nacos

Nacos 本专栏学习内容来自尚硅谷周阳老师的视频 有兴趣的小伙伴可以点击视频地址观看 简介 Nacos是阿里巴巴推出的服务注册和配置中心。等价于EurekaConfigBus&#xff0c;可以替代Eureka做服务注册中心&#xff0c;替代Config做服务配置中心。官方文档 安装 关于Nacos的安装…

HBase进阶——文件的合并、 MemStore Flush、StoreFile Compaction、 Region Split、高可用与预分区介绍

系列文章目录 centos7虚拟机下hbase的使用案例讲解 hbase进阶操作——读流程与写流程介绍 centos7虚拟机在集群zookeeper上面配置hbase的具体操作步骤 文章目录 系列文章目录 一、HBase的架构原理 1、StoreFile 2、MemStore 3、WAL 二、HBase的shell操作 2.1、创建表…

pytest使用 一(安装、简单的测试用例、运行)

Pytest框架 — 1.Pytest测试框架介绍 - 知乎 2023最新pytest接口自动化测试框架&#xff0c;三天带你精通pytest&#xff0c;带你写出最好的代码&#xff01;&#xff08;已更新2023新版&#xff09;_哔哩哔哩_bilibili 一、pytest安装 pip3 install pytest # 查看pytest版本…