Opencv | Opencv 基于图像的运算

目录

  • 一. OpenCV 基于图像的运算
    • 1 cv.item( ) 获取图像某个位置的像素值
    • 2. cv. itemset( ) 修改图像某个位置的像素值
    • 3. cv.split( ) / cv.merge( ) 通道的分割与合并
    • 4. cv.copyMakeBorder ( ) 添加边框
    • 5. cv.addWeighted ( ) 图像融合 / 权重和
    • 6. cv.threshold 二值化操作
    • 7. cv.add ( ) 加法操作
    • 8. cv.subtract ( ) 减法操作
    • 9. cv.multiply ( ) 乘法操作
    • 10. cv.divide ( ) 除法操作
  • 二. OpenCV 基于图像的逻辑运算
    • 1. cv.bitwise_not ( )按位非操作
    • 2. cv.bitwise_and ( ) 按位与操作
    • 3. cv.bitwise_or ( ) 按位或操作
    • 4. cv.bitwise_xor ( ) 按位异或操作

一. OpenCV 基于图像的运算

img = cv.imread("sky.png",-1)
print(img.size)  # 750000
print(img.shape)  # (500, 500, 3)
print(img.dtype)  # uint8:无符号的整数8位,即(0-255)

1 cv.item( ) 获取图像某个位置的像素值

	cv.item( ) 作用:一次只能查看一个通道某个点【注意】读取图像格式为BGR

2. cv. itemset( ) 修改图像某个位置的像素值

	cv. itemset( )作用:一次只能修改一个通道某个个点的像素值【注意】读取图像格式为BGR

3. cv.split( ) / cv.merge( ) 通道的分割与合并

	cv.split ( )  分割图像的通道cv.merge ( )  融合多个通道

4. cv.copyMakeBorder ( ) 添加边框

	cv.copyMakeBorder(src, top, bottom, left, right, borderType, dst=None, value=None)参数:src:输入的图片top/bottom/left/right:相应方向上的边框宽度borderType:要添加边框的类型,具体有:cv.BORDER_REPLICATE:使用最边界的像素值代替cv.BORDER_REFLECT:添加的边框像素将是边界元素的镜面反射cv.BORDER_REFLECT_101/cv.BORDER_DEFAULT:边界反射,边界像素不保留cv.BORDER_WRAP:看例子cv.BORDER_CONSTANT:添加的边界框像素值为常数(需要额外再给定一个参数)dst:输出图像;Python接口一般不用这个参数value:如果borderType为cv.BORDER_CONSTANT时,需要填充的常数值

5. cv.addWeighted ( ) 图像融合 / 权重和

	cv2.addWeighted(src1,alpha,src2.beta,gamma)参数:alpha:src1的权重beta:src2的权重gamma:偏置项非官方:加权和相当于:w1 * x1 + w2 * x2 + b注意:有偏置项

6. cv.threshold 二值化操作

	retval, threshold_img = cv.threshold(src, thresh, maxval, type)参数:src: 输入图像,通常是灰度图像thresh: 阈值,用于决定像素值如何被分类maxval: 当像素值高于(或低于,取决于阈值类型)阈值时,像素的新值type: 阈值类型cv.THRESH_BINARY,cv.THRESH_BINARY_INVcv.THRESH_TRUNCcv.THRESH_TOZEROcv.THRESH_TOZERO_INV作用:基于一个阈值,将图像中的像素值转换为两个可能的值:通常是黑色和白色即: 0(黑色)和1(白色)/ 0(黑色)和255(白色)

7. cv.add ( ) 加法操作

	两张图片相加,shape必须相同图片对应位置相加,如果相加后出现值大于255的情况,统一置为255解决方法:1. 相加图片权重相同2. 相加图片权重不同

8. cv.subtract ( ) 减法操作

	对应位置相减,如果小于0,统一置为0

9. cv.multiply ( ) 乘法操作

	对应位置相乘,如果大于255,统一置为255

10. cv.divide ( ) 除法操作

	对应位置相除,如果小于0,统一置为0

二. OpenCV 基于图像的逻辑运算

1. cv.bitwise_not ( )按位非操作

	图像位运算,对图像的每个像素值进行”非”操作,即:dst=np.uint8(~src)

2. cv.bitwise_and ( ) 按位与操作

	图像位运算,对两个图像的每个像素值之间进行”与”操作,即: dst=np.uint8(src1 & src2)

3. cv.bitwise_or ( ) 按位或操作

	图像位运算,对两个图像的每个像素值之间进行”或”操作,即: dst=np.uint8(src1 | src2)

4. cv.bitwise_xor ( ) 按位异或操作

	图像位运算,对两个图像的每个像素值之间进行”异或”操作,即: dst=np.uint8(src1 ^ src2)

感谢阅读🌼
如果喜欢这篇文章,记得点赞👍和转发🔄哦!
有任何想法或问题,欢迎留言交流💬,我们下次见!
本文相关代码存放位置
    【Opencv 基于图像的运算

祝愉快🌟!


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

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

相关文章

webpack详解

前端对于打包工具webpack的使用 首先是针对于版本的变化3-4 4的话node版本的底版不再支持,尽量下载14.0以后的版本,做到更好的兼容 配置方面增加了mode:production/development/none想要指定在不同的mode下开启默认的优化手段 loader和plugin的不同 1.loader能让webpack…

高防IP的优势和挑战

高防IP(防御性网络IP)是一种具有强大防御能力的网络服务,在面对网络攻击时能够保护系统免受攻击的影响。以下是高防IP的优势和挑战的例子: 优势: 强大的防御能力:高防IP能够识别和过滤掉各种类型的网络攻击…

【深入探讨】JavaScript 中的 forEach 和 map 区别

🐱 个人主页:不叫猫先生,公众号:前端Clodplay 🙋‍♂️ 作者简介:前端领域优质作者、阿里云专家博主,共同学习共同进步,一起加油呀! ✨优质专栏:VS Code插件开…

房贷还款(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <math.h>int main() {//初始化变量值&#xff1b;double m, r 0.01;float d 300000;float p 6000;//运算还款所需月份&#xff1b;m log10…

元象4.2B参数 MoE大模型实战

01 简介 近期&#xff0c;元象公司推出了其首个Moe大模型XVERSE-MoE-A4.2B。该模型采用了混合专家模型架构&#xff08;Mixture of Experts&#xff09;&#xff0c;并拥有4.2B的激活参数&#xff0c;其性能可与13B模型相媲美。值得一提的是&#xff0c;这个模型是完全开源的&…

Python 实战人工智能数学基础:图像处理应用

1.背景介绍 在许多计算机视觉任务中&#xff0c;图像处理占据了很重要的角色&#xff0c;尤其是在目标检测、特征提取、分类、跟踪等计算机视觉任务中。图像处理是一个复杂的过程&#xff0c;涉及到图像的采集、分析、存储、显示等环节。本文将讨论基于Python实现的图像处理的…

spring快速搭建聊天AI

官网url: https://spring.io/projects/spring-ai 本文演示的是open AI 1创建java项目 2.拿到AI的key&#xff08;没有的话可以去淘宝花几块钱买一个&#xff09; //YOUR_API_KEY写你自己的open AI的key spring.ai.openai.api-keyYOUR_API_KEY spring.ai.openai.chat.options.…

在家如何查找下载外文文献

查找下载外文文献的数据库大部分都需要使用权限的&#xff0c;那么我们如何在家进入这些数据库查找下载文献资源呢&#xff1f;请看本文的经验分享&#xff1a; 举例1、 一位同学的文献求助&#xff1a;Performance of financial hedging and earnings management under dive…

计算机笔记(10)续20个

160.BCD码一共有十位编码 161.物联网两个重要因素&#xff1a;规模性&#xff0c;流动性 162.需求分析的任务包括&#xff1a;问题分析&#xff0c;需求描述&#xff0c;需求评审 163.非法破译他人的密码破坏了数据的保密性 164.一级汉字3755个&#xff0c;二级3008个 165…

利用python写java项目(springboot+vue)的代码生成工具,vue+springboot项目加字段神器

经常会遇到项目需要加字段的事情&#xff0c;一个两个也就那么样&#xff0c;多了就比较烦。虽然框架里自带代码生成工具&#xff0c;脚手架基本上都有&#xff0c;但是&#xff0c;有时候需要改字段&#xff0c;加字段&#xff0c;数量还比较多的时候&#xff0c;再生成一次很…

WordPress 图片压缩插件:Compress JPEG PNG images 使用方法

插件介绍 Compress JPEG & PNG images是一款非常好用的图片压缩插件:&#xff0c;非常值得大家安装使用&#xff1b;特别是图片类型网站。其实我们很多服务器磁盘空间是不在乎多那么几十 MB 大小的&#xff0c;但是压缩了图片能提升网站速度&#xff0c;节省宽带&#xff…

【论文阅读——SplitFed: When Federated Learning Meets Split Learning】

级别CCFA 1.摘要 联邦学习&#xff08;FL&#xff09;和分割学习&#xff08;SL&#xff09;是两种流行的分布式机器学习方法。两者都采用了模型对数据的场景&#xff1b;客户端在不共享原始数据的情况下训练和测试机器学习模型。由于机器学习模型的架构在客户端和服务器之间…

(最新)itext7 freemarker动态模板转pdf

1.引入依赖 <!--PDF导出POM--> <dependency><groupId>com.itextpdf</groupId><artifactId>itext7-core</artifactId><version>8.0.3</version><type>pom</type> </dependency> <dependency><grou…

BackTrader 中文文档(七)

原文&#xff1a;www.backtrader.com/ TA-Lib 原文&#xff1a;www.backtrader.com/docu/talib/talib/ 即使backtrader提供了大量内置指标&#xff0c;而且开发指标主要是定义输入、输出并以自然方式编写公式&#xff0c;一些人还是想要使用TA-LIB。一些原因包括&#xff1a; 指…

基于SignalR视频聊天 一

环境 VS2022 WIN10 .NET8 VSCode VUE SignalR 1.安装SignalR客户端库 需要在Vue.js项目中安装SignalR客户端库。可以使用npm或者yarn来安装 npm install microsoft/signalr2.创建SignalR服务 创建SignalR服务&#xff0c;以便客户端&#xff08;Vue.js应用&#xff09;能…

抄袭可耻 - 2023面试高手抄袭对比图

原创博客(伏城之外)抄袭博客(2023面试高手)对比图华为OD机试 - 跳马(Java & JS & Python & C & C++)_华为od岗c卷机试马走日-CSDN博客2024年华为OD机试真题-跳马-Python-OD统一考试(C卷)-CSDN博客

集合体系java

Collection:单列集合&#xff1a;每个元素只包含一个值 Collection集合存储的是地址 Collection的三种遍历方法如下 //迭代器是用来遍历集合的专用方式&#xff08;数组没有迭代器&#xff09;&#xff0c;在java中迭代器的代表是Iterator //boolean hasNext():询问当前位置…

Java中队列

队列是一种常见的数据结构&#xff0c;它按照先进先出&#xff08;FIFO&#xff09;的原则管理元素。在 Java 中&#xff0c;队列通常是通过链表或数组实现的&#xff0c;不同的实现类在内部数据结构和操作上可能有所不同。 1.原理 1.数据结构&#xff1a;队列的基本数据结构…

【python图形界面问题解决】wxPython创建图形界面程序,在代码编译器中正常运行,但是打包后却不能运行解决办法

一、问题 使用wxPython创建一个图形界面&#xff0c;在VSCODE中正常运行&#xff0c;但是打包后&#xff0c;却不能运行&#xff0c;只出现一个一闪而过的窗口&#xff0c;这时最需要看看这窗口到底显示了什么内容。这里可以使用录屏软件录制屏幕&#xff0c;这里使用LICEcap小…

Android多线程编程

前言 本文由于介绍Android多线程编程的学习。 线程基本用法 定义线程有两种方式&#xff0c;分别是继承Thread类、实现Runnable接口&#xff1a; 继承Thread类&#xff1a;只需新建一个类继承自Thread&#xff0c;然后重写父类的run()方法&#xff0c;在这个方法里面写耗时…