opencv-python(五):图像的算数运算_python如何计算图像-程序员宅基地

技术标签: cv  opencv-python  计算机视觉  opencv  

0. 注意

图像的本质就是矩阵,所以要以矩阵的眼光来理解

1. 加减法

1.1 加法
  • img1+img2:将两幅图像对应位置的像素相加(尺寸类型相同)
  • img1+50:将img1全部像素+50,提高了整体亮度
1.2 减法
  • img1-img2:两幅相同尺寸的图相减
  • img-50:将img1全部像素-50,降低了整体亮度
    将img1全部像素+50,提高了整体亮度
    在这里插入图片描述
    右边两幅图是左边两幅图相减做差的结果,对于左边两幅图的差别不易观察,但是做差后就很明显
1.2 图像混合

图像混合的数学公式:
g ( x ) = ( 1 − α ) f 1 ( x ) + α f 2 ( x ) g(x) =(1-α)f_1(x)+αf_2(x) g(x)=(1α)f1(x)+αf2(x)
通过控制 α α α来决定混合图中谁的更明显

  • cv2.addWeighted(img1,alpha,img2,beta,gamma):按权重混合两幅图
  • alpha:img1的权重
  • beta:img2的权重
  • gamma:给混合图像增加亮度
import cv2

img1=cv2.imread("donald_trump.jpg")

img2=cv2.imread("flower.jpg")
img2=cv2.resize(img2,(600,800)) #需要两幅图尺寸一样

# 100代表混合图的亮度增加100,若不想增加则设为0
img3=cv2.addWeighted(img1,0.3,img2,0.7,100)

cv2.imshow("",img3)
cv2.waitKey(0)

在这里插入图片描述

2. 按位运算

包括AND、OR、NOT、XOR等,最显著的使用场景就是掩膜:
opencv-python掩膜操作

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40243750/article/details/113801073

智能推荐

python 卡方检验 特征选择_结合Scikit-learn介绍几种常用的特征选择方法-程序员宅基地

文章浏览阅读437次。特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点、底层结构,这对进一步改善模型、算法都有着重要作用。特征选择主要有两个功能:减少特征数量、降维,使模型泛化能力更强,减少过拟合增强对特征和特征值之间的理解拿到数据集,一个特征选择方法,往往很难同时完成这两个目的。通常情况下,我们经常不管三七二十一,选择一种自己最熟悉或者最方便的特征..._python sklearn卡方检验选择特征

Android 锁屏后无法接收UDP_android接收udp组播熄屏收不到-程序员宅基地

文章浏览阅读4.1k次。今天遇到一个很神奇的问题。 应用中有一个服务,服务中使用线程池 进行UDP的接收和发送。 但是,当锁屏后,数据无论如何都接收不到,当打开锁屏的时候,数据接收又恢复正常了。 并且,使用电源锁也没有任何效果。 PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE); wl = pm.newWakeLoc_android接收udp组播熄屏收不到

Netty的Reactor线程模型_reactor线程组-程序员宅基地

文章浏览阅读450次。上图是一个Reactor线程模型,基于select(),epoll(),Reactor线程将I/O调用请求和I/O操作分离开,理论上一个Reactor线程能处理N个网络I/O操作,但是当并发量很大的时候,一个Reactor线程就会出现响应缓慢,连接超时等问题。============================================================那么一个Reacto_reactor线程组

word中导出高分辨率pdf_word导出到pdf时可以选dpi吗-程序员宅基地

文章浏览阅读8.3k次,点赞8次,收藏24次。1、需安装有软件:Adobe Acrobat DC,可通过下面链接下载:https://pan.baidu.com/s/1oJJyN5TdayajDqmoTamkVw&shfl=sharepset 提取码:ai7u2、图片格式设置:如何使用matlab进行绘图,一定要保存图片格式为.tiff,这样才不会对文件进行压缩,使原有的图片分辨率保持不变。3、word在插入高分辨率图片前需..._word导出到pdf时可以选dpi吗

树莓派vi编辑文件时退格键和方向键无法正常使用的问题_树莓派 方向键-程序员宅基地

文章浏览阅读1.2k次。【问题现象】树莓派在使用vi编辑文件时,发现退格删除键(Backspace键),无法删除,方向键变成了ABCD还自动换行。【问题解决】此问题根因是树莓派系统预装的是vim-tiny版本,就是简易版,且默认是兼容模式。ubuntu系统也有相同的问题。下面提供的方法通用适用ubuntu。使用vim命令时提示命令不支持,是因为新系统默认装了vi,没有装vim。【方案1】(推荐)卸载重装vim full完整版。参考命令如下:$sudo apt-get remove vim-common$sudo a_树莓派 方向键

java BufferedImage转MultipartFile-程序员宅基地

文章浏览阅读1w次,点赞43次,收藏21次。java生成二维码返回BufferedImage对象,需要转成MultipartFile进行文件上传。转换流程:BufferedImage → InputStream →MultipartFile //得到BufferedImage对象 BufferedImage bufferedImage = JoinTwoImage.testEncode(200, 200, url); //创建一个ByteArrayOutputStream By._bufferedimage转multipartfile

随便推点

Jetpack架构组件 — Room入坑详解-程序员宅基地

文章浏览阅读5.7k次,点赞5次,收藏12次。Room是Jetpack组件库一员,属于ORM库,主要是对Sqlite做了一层抽象,从而简化开发者对数据库操作。Room支持编译时的语法检查,并且支持返..._jetpack room kapt

linux下 tar解压 gz解压 bz2等各种解压文件使用方法_hornycraft解锁农场-程序员宅基地

文章浏览阅读1.6k次。linux下 tar解压 gz解压 bz2等各种解压文件使用方法2010-03-23 15:15.tar  解包:tar xvf FileName.tar  打包:tar cvf FileName.tar DirName  (注:tar是打包,不是压缩!)  ———————————————  .gz  解压1:gunzip FileName.gz  解压2:gzip -_hornycraft解锁农场

知识图谱入门系列_nerrdfs-程序员宅基地

文章浏览阅读571次。很好的入门解说,包括实现方式及意义第一次在知乎上发帖,有不准确的地方欢迎大家指正!!!,后续会持续更新知识图谱相关技术细节。本贴大概介绍一下知识图谱中相关的技术。知识图谱针对于知识图谱基础知识,领域应用和学术前沿趋势进行介绍。知识图谱介绍知识图谱(Knowledge Graph)以结构化的形式描述客观世界中概念、实体及其关系。是融合了认知计算、知识表示与推理、信息检索与抽取、自然语言处理、Web技术、机器学习与大数据挖掘等等方向的交叉学科。人工智能是以传统符号派与目前流行的深度神经._nerrdfs

Thinkphp 模板/内置标签/Foreach标签_{foreach name="typelist" item="vo"}-程序员宅基地

文章浏览阅读4k次。Foreach标签foreach标签类似与volist标签,只是更加简单,没有太多额外的属性,例如:<foreach name="list" item="vo"> {$vo.id}:{$vo.name}</foreach>name表示数据源 item表示循环变量。可以输出索引,如下:<foreach name="list" item..._{foreach name="typelist" item="vo"}

Camera2中方法createcapturesession过时的解决方案_camera.createcapturesession过时-程序员宅基地

文章浏览阅读2.6k次,点赞3次,收藏2次。想做个相机的DEMO,简单地打开相机,然后捕捉画面到手机屏幕上。结果在创建会话的时候遇到了个麻烦。搜遍了CSDN和博客园等等,关于关键方法createCaptureSession全是用过时的参数配置,自己查看源码和API文档,慢慢地给试出来了~感觉真是第一篇关于createCaptureSession方法的讲解。2021年前的这样的参数配置都过时了~ @Deprecated public abstract void createCaptureSession(@NonNull List<S_camera.createcapturesession过时

Redis 设置一个key的过期时间和生僻命令演习(八 .)_redisson 获取某个key并设置时间-程序员宅基地

文章浏览阅读63次。设置key 的存活时间100秒127.0.0.1:6379> EXPIRE HZQ 100查看还有多长时间存活127.0.0.1:6379> ttl HZQ(integer) 96127.0.0.1:6379> ttl HZQ(integer) 90127.0.0.1:6379> ttl HZQ(integer) 83127.0.0.1:6379> ttl HZQ 已经没了(integer) -2..._redisson 获取某个key并设置时间