OpenCV CUDA模块中逐元素操作------逻辑运算
- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
比较、AND、OR、NOT等。这类操作可用于创建基于条件的掩码,这对于图像分割或特征选择非常有用。
主要函数
1. 按位与 (cv::cuda::bitwise_and)
功能: 对两个矩阵执行逐元素按位与操作。
函数原型
void cv::cuda::bitwise_and
(InputArray src1, // 第一个输入矩阵或标量InputArray src2, // 第二个输入矩阵或标量OutputArray dst, // 输出矩阵const GpuMat& mask = GpuMat(), // 可选掩码矩阵Stream& stream = Stream::Null() // 可选CUDA流
);
参数介绍:
- src1: 输入的第一个矩阵或标量。
- src2: 输入的第二个矩阵或标量。
- dst: 输出的结果矩阵。
- mask: 可选的掩码矩阵,用于指定哪些像素参与计算,默认为空(不使用掩码)。
- stream: CUDA流对象,用于控制操作的异步执行,默认为同步执行。
2. 按位或 (cv::cuda::bitwise_or)
功能: 对两个矩阵执行逐元素按位或操作。
函数原型
void cv::cuda::bitwise_or
(InputArray src1,InputArray src2,OutputArray dst,const GpuMat& mask = GpuMat(),Stream& stream = Stream::Null()
);
参数
- src1: 输入的第一个矩阵或标量。
- src2: 输入的第二个矩阵或标量。
- dst: 输出的结果矩阵。
- mask: 可选的掩码矩阵,用于指定哪些像素参与计算,默认为空(不使用掩码)。
- stream: CUDA流对象,用于控制操作的异步执行,默认为同步执行。
3. 按位非 (cv::cuda::bitwise_not)
功能: 对单个矩阵执行逐元素按位非操作。
函数原型
void cv::cuda::bitwise_not
(InputArray src, // 输入矩阵OutputArray dst, // 输出矩阵const GpuMat& mask = GpuMat(), // 可选掩码矩阵Stream& stream = Stream::Null() // 可选CUDA流
);
参数介绍
- src: 输入的矩阵。
- dst: 输出的结果矩阵。
- mask: 可选的掩码矩阵,用于指定哪些像素参与计算,默认为空(不使用掩码)。
- stream: CUDA流对象,用于控制操作的异步执行,默认为同步执行。
4. 按位异或 (cv::cuda::bitwise_xor)
功能: 对两个矩阵执行逐元素按位异或操作。
函数原型
void cv::cuda::bitwise_xor
(InputArray src1,InputArray src2,OutputArray dst,const GpuMat& mask = GpuMat(),Stream& stream = Stream::Null()
);
参数介绍
- src1: 输入的第一个矩阵或标量。
- src2: 输入的第二个矩阵或标量。
- dst: 输出的结果矩阵。
- mask: 可选的掩码矩阵,用于指定哪些像素参与计算,默认为空(不使用掩码)。
- stream: CUDA流对象,用于控制操作的异步执行,默认为同步执行。
示例代码
以下是一个综合示例,展示了如何使用这些逻辑运算函数,并包含了所有参数的使用:
#include <opencv2/cudaarithm.hpp> // 包含CUDA算术和逻辑运算头文件
#include <opencv2/opencv.hpp>int main()
{// 创建两个输入矩阵cv::Mat h_src1 = ( cv::Mat_< uchar >( 3, 3 ) << 1, 0, 1, 0, 1, 0, 1, 0, 1 ); // 第一个输入矩阵cv::Mat h_src2 = ( cv::Mat_< uchar >( 3, 3 ) << 0, 1, 0, 1, 0, 1, 0, 1, 0 ); // 第二个输入矩阵// 将它们上传到GPUcv::cuda::GpuMat d_src1, d_src2;d_src1.upload( h_src1 );d_src2.upload( h_src2 );// 定义输出矩阵cv::cuda::GpuMat d_dst;// 按位与操作cv::cuda::bitwise_and( d_src1, d_src2, d_dst );cv::Mat h_bitwise_and;d_dst.download( h_bitwise_and );std::cout << "Result (Bitwise AND):\n" << h_bitwise_and << std::endl;// 按位或操作cv::cuda::bitwise_or( d_src1, d_src2, d_dst );cv::Mat h_bitwise_or;d_dst.download( h_bitwise_or );std::cout << "Result (Bitwise OR):\n" << h_bitwise_or << std::endl;// 按位非操作cv::cuda::bitwise_not( d_src1, d_dst );cv::Mat h_bitwise_not;d_dst.download( h_bitwise_not );std::cout << "Result (Bitwise NOT on src1):\n" << h_bitwise_not << std::endl;// 按位异或操作cv::cuda::bitwise_xor( d_src1, d_src2, d_dst );cv::Mat h_bitwise_xor;d_dst.download( h_bitwise_xor );std::cout << "Result (Bitwise XOR):\n" << h_bitwise_xor << std::endl;return 0;
}
运行结果
Result (Bitwise AND):
[ 0, 0, 0;0, 0, 0;0, 0, 0]
Result (Bitwise OR):
[ 1, 1, 1;1, 1, 1;1, 1, 1]
Result (Bitwise NOT on src1):
[254, 255, 254;255, 254, 255;254, 255, 254]
Result (Bitwise XOR):
[ 1, 1, 1;1, 1, 1;1, 1, 1]
相关文章:
OpenCV CUDA模块中逐元素操作------逻辑运算
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 比较、AND、OR、NOT等。这类操作可用于创建基于条件的掩码,这对于图像分割或特征选择非常有用。 主要函数 1. 按位与 (cv::cuda::b…...
微信开发者工具里面模拟操作返回、录屏、网络速度、截屏等操作
微信开发者工具里面模拟操作返回、录屏、网络速度、截屏等操作...
Void: Cursor 的开源平替
GitHub:https://github.com/voideditor/void 更多AI开源软件:发现分享好用的AI工具、AI开源软件、AI模型、AI变现 - 小众AI Void,这款编辑器号称是开源的 Cursor 和 GitHub Copilot 替代品,而且完全免费! 在你的代码库…...
【MySQL】日志缓冲区详解 以及 InnoDB内存结构总结
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
在Spark搭建YARN
(一)什么是SparkONYarn模式 Spark on YARN(Yet Another Resource Negotiator)是 Spark 框架在 Hadoop 集群中运行的一种部署模式,它借助 Hadoop YARN 来管理资源和调度任务。 架构组成 ResourceManager:作…...
postman 用法 LTS
postman 用法 LTS File ---- View ---- Show Postman Console...
Spring Boot requestBody postman
Spring Boot requestBody postman 在处理Spring Boot应用程序中的RequestBody注解时,通常用于接收客户端(如Postman)发送的JSON格式数据。如果你在Postman中配置请求,并希望将JSON数据发送到Spring Boot后端,你可以按…...
OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——wget
准备工作 请依照这篇文章搭建环境 OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——环境配置_openharmony交叉编译-CSDN博客 编译依赖 Wget依赖Gnutls库,gnutls库依赖gmp、nettle、libunistring库 上述库可在历史文章中自行查找 下载 w…...
枢轴支压点策略
一种基于枢轴点(Pivot Point)的交易策略,主要用于在趋势行情中进行交易。 策略的核心思路是通过计算前一天的最高价、最低价和收盘价来确定当天的枢轴点,并据此计算出第一和第二阻力位以及第一和第二支撑位。 可以根据这些关键点位…...
【SSL部署与优化】TLS 1.3的核心改进与性能优化
TLS 1.3 的核心改进与性能优化 TLS 1.3 是当前最安全的 TLS 协议版本,通过简化协议、增强加密算法和优化握手流程,显著提升了性能和安全性。以下是其核心改进、性能优化及关键技术的详细解析: 一、TLS 1.3 核心改进 精简加密套件 • 移除弱算…...
等经纬度投影下求经纬度的行列号
一 概述 使用等经纬度投影(Equirectangular Projection), 将经纬度转换为行列号。 二 C实现 1 代码 以下是C的实现方法。该实现将地球的经纬度范围划分为固定分辨率的网格,每个网格对应一个行列号。 #include <cmath> #in…...
MetaHipMer2:从头组装宏基因组
Terabase-scale metagenome coassembly with MetaHipMer | Scientific Reports https://academic.oup.com/nar/advance-article/doi/10.1093/nar/gkaf369/8126258 安装 配置环境 berkeleylab / upcxx / wiki / INSTALL — Bitbucket mamba create -n mhm2_env -c conda-fo…...
CK-S654-PA60一拖四分体式半导体电子货架专用RFID读写器|读码器接线使用说明
半导体行业RFID电子货架通过物联网技术将传统仓储从“经验驱动”转向“数据驱动”,其自动化识别、实时追踪与智能决策能力,正重塑物流与库存管理的底层逻辑。从晶圆盒的精准定位到柔性化生产,这一技术不仅提升了效率,更让半导体行…...
C++类和对象练习:Date类实现日期的差,比较日期的大小,日期的前置后置++,--,输入输出Date类,对默认函数的练习。
引言 C类和对象练习:Date类实现日期的差,比较日期的大小,日期的前置后置,--,输入输出Date类,对默认函数的练习。 _涂色_-博客主页 C基础专栏 分三个文件来写: Date.cpp //类函数的实现 Date.h…...
C++学习之打车软件git版本控制
目录 01 3-git的简介 02 4-git的下载和提交代码 03 5-git添加一个新文件 04 5-删除一个文件 05 6-git的批量添加和提交文件 06 7-git重命名文件名 07 8-git解决代码冲突 08 9-git的分支的概念 09 10-创建项目代码仓库 10 1-git提交代码复习 01 3-git的简介 1 --------…...
QT之信号与槽
欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 QT信号与槽机制详解基本概念信号(Signal)槽(Slot) 信号与槽的连接方式基本语法QT5新语法(推荐) 信号与槽的特点实际示例传统方式QT5新语法 连接类型注意事项高级用法信号连接信号使用lambda表达式自动…...
文章记单词 | 第73篇(六级)
一,单词释义 apart /əˈpɑːt/ adv. 分开地;相距assistant /əˈsɪstənt/ n. 助手;助理useless /ˈjuːsləs/ adj. 无用的;无效的ampere /ˈmpɛr/ n. 安培(电流单位)recite /rɪˈsaɪt/ v. 背诵&am…...
在Ubuntu24.04中配置开源直线特征提取软件DeepLSD
在Ubuntu24.04中配置开源直线特征提取软件DeepLSD 本文提供在Ubuntu24.04中配置开源直线特征提取软件DeepLSD的基础环境配置、列出需要修改的文件内容,以及报错解决方案集锦。 基础的编译安装环境 python3.8.12CUDA12gcc/g 9.5(系统自带的g-13版本太新…...
什么是SparkONYarn模式?
(一)什么是SparkONYarn模式 Spark on YARN(Yet Another Resource Negotiator)是 Spark 框架在 Hadoop 集群中运行的一种部署模式,它借助 Hadoop YARN 来管理资源和调度任务。 架构组成 ResourceManager:作…...
STMCubeMX使用TB6612驱动编码轮并进行测速
硬件介绍 TB6612电机驱动模块功能与特性 电机方向控制 描述如何通过 TB6612 的 IN1 和 IN2 引脚控制电机的旋转方向。提供代码示例,展示如何通过 GPIO 控制电机的正反转。 速度控制与减速 解释如何通过调整 PWM 信号的占空比来控制电机的速度,并…...
数据安全与权限管控,如何实现双重保障?
数据安全和权限管控并非孤立存在,而是相互依存、相互促进的关系。强大的权限管控体系是数据安全的重要防线,能够从源头上限制潜在的风险;而完善的数据安全策略和技术手段,则为权限管控的有效实施提供了保障。只有构建起数据安全与…...
如何创建自动工作流程拆分Google Drive中的PDF文件
以下是完整的工作流程。在构建自动拆分工作流程之前,您可以尝试我们的免费在线 PDF 拆分器。 步骤 1:Make 自动拆分 PDF 的要求 要设置自动 PDF 拆分工作流程,您需要: 免费的Make.com帐户。可访问 Google Drive 并处理 PDF 文件…...
【SpringBoot实战指南】集成Easy ES
一、Easy ES 简介 Easy ES(简称EE)是一款基于 Elasticsearch 官方 RestHighLevelClient 封装的 ORM 框架,提供类似 MyBatis-Plus 的 API 设计,可以帮助开发者更简单地集成和使用 Elasticsearch,让操作 Elasticsearch …...
深入理解指针(1)
🎁个人主页:工藤新一 🔍系列专栏:C面向对象(类和对象篇) 🌟心中的天空之城,终会照亮我前方的路 🎉欢迎大家点赞👍评论📝收藏⭐文章 文章目录 深…...
vue.js中的渲染【条件渲染】
条件渲染 在 Vue 中,条件渲染用于根据表达式的值来决定是否在 DOM 中渲染某个元素。Vue 提供了几种方式来实现条件渲染: v-if 指令 用于根据条件是否为真来销毁或创建元素。 <p v-if"isVisible">显示这段内容</p>data() {retu…...
Qwen3如何强化推理能力?
大模型的推理能力一直是衡量其智能水平的关键指标。近期,Qwen3系列模型在这方面取得了显著突破。通过对Qwen3技术报告的解读,我们可以窥见一套完整的推理能力提升体系。本文将以结构化视角,剖析Qwen3推理能力提升的关键环节。 报告地址&#…...
2025年中国主流DevOps平台对比分析:Gitee、阿里云效与GitLab CE的技术适配与合规实践全景解读
在2025年中国企业数字化转型持续深化的背景下,DevOps 工具的选型呈现出多元化趋势。以下从安全合规、技术生态适配性、实践案例和选型建议四个维度,对 Gitee、阿里云效(云效 DevOps)和 GitLab CE(中国版)三…...
从lightrag的prompt到基于openai Structured Outputs 的优化实现思路
LightRAG 是一个用于构建 RAG 系统核心组件的配置和管理类。它集成了文档处理、存储、向量化、图谱构建和 LLM 交互等功能。你可以通过配置 LightRAG 实例的各种参数来定制 RAG 系统的行为。 目前lightrag中的实体关系抽取实现如下 PROMPTS["entity_extraction"] …...
论文阅读笔记——双流网络
双流网络论文 视频相比图像包含更多信息:运动信息、时序信息、背景信息等等。 原先处理视频的方法: CNN LSTM:CNN 抽取关键特征,LSTM 做时序逻辑;抽取视频中关键 K 帧输入 CNN 得到图片特征,再输入 LSTM&…...
Android清单文件
清单文件AndroidManifest.xml AndroidManifest.xml 配置清单文件是 每个 Android 应用的配置中心,系统在安装和运行应用时,首先会读取它。 它是 Android 应用的 “说明书”,主要作用是: 功能说明声明应用组件比如 Activity、Se…...
Single image dehazing论文阅读
Single image dehazing 1. 论文的研究目标与实际意义1.1 研究目标1.2 实际问题与产业意义2. 论文的创新方法、模型与公式2.1 改进的大气散射模型2.2 局部统计不相关性约束2.2.1 传输函数估计2.2.2 大气光颜色估计2.3 算法流程2.4 与传统方法的对比优势3. 实验设计与结果3.1 实验…...
数字信号处理-大实验1.3
MATLAB仿真实验目录 验证实验:常见离散信号产生和实现验证实验:离散系统的时域分析应用实验:语音信号的基音周期(频率)测定 说明:(1)本文是DSP大实验1的最后一篇,主要讲…...
【Pandas】pandas DataFrame describe
Pandas2.2 DataFrame Computations descriptive stats 方法描述DataFrame.abs()用于返回 DataFrame 中每个元素的绝对值DataFrame.all([axis, bool_only, skipna])用于判断 DataFrame 中是否所有元素在指定轴上都为 TrueDataFrame.any(*[, axis, bool_only, skipna])用于判断…...
C++GO语言微服务之Dockerfile docker-compose②
目录 01 12-yaml文件书写规则01 12-yaml文件书写规则 02 13-yaml中的数据类型 03 14-docker-compose配置文件格式 04 15-docker-compose中的关键字 05 16-prots和volumes关键字的使用 06 17-volumes_from的使用 07 18-extends的使用 08 19-networks的使用 09 20-docker…...
【计算机视觉】OpenCV实战项目:Face-Mask-Detection 项目深度解析:基于深度学习的口罩检测系统
Face-Mask-Detection 项目深度解析:基于深度学习的口罩检测系统 一、项目概述项目特点 二、项目运行方式与执行步骤(一)环境准备(二)项目结构(三)执行步骤 三、重要逻辑代码解析(一&…...
鸿蒙OSUniApp 实现的语音输入与语音识别功能#三方框架 #Uniapp
UniApp 实现的语音输入与语音识别功能 最近在开发跨平台应用时,客户要求添加语音输入功能以提升用户体验。经过一番调研和实践,我成功在UniApp项目中实现了语音输入与识别功能,现将过程和方法分享出来,希望对有类似需求的开发者有…...
python:一个代理流量监控的媒体文件下载脚本
前言 一个mitmproxy代理服务应用,作用是监听系统流量,并自动下载可能的video媒体文件到本地。 如果你没有安装mitmproxy或没有做完准备工作,请参考我的这篇文章: python:mitmproxy代理服务搭建-CSDN博客 文件架构目录…...
openfeign与dubbo调用下载excel实践
一、前言 openfeign和dubbo均是rpc框架 RPC(Remote Procedure Call,远程过程调用)框架 是一种允许程序像调用本地方法一样调用远程服务器上函数的技术。它隐藏了底层网络通信的复杂性,让开发者可以专注于业务逻辑,实现…...
Android多媒体——媒体start流程分析(十三)
当多媒体的数据源准备好,并且完成调用准备结束流程后,接下来就开始是调用 start() 方法开始播放媒体了。这里我们就来分析一下媒体开始播放的整个流程。 一、媒体播放流程 对于媒体播放流程的 Java 层和 JNI 层与前面的示例基本相同,这里不再重复展示了,我们直接从 mediap…...
数据库系统概论(八)SQL单表查询语言超详细讲解(附带例题表格对比带你一步步掌握)
数据库系统概论(八)SQL单表查询语言超详细讲解(附带例题表格对比带你一步步掌握) 前言一、创建表(了解一下就好,后面会详细讲)二、数据查询的概念2.1 什么是数据查询?2.2 数据查询的…...
【IPMV】图像处理与机器视觉:Lec11 Keypoint Features and Corners
【IPMV】图像处理与机器视觉:Lec11 Keypoint Features and Corners 本系列为2025年同济大学自动化专业**图像处理与机器视觉**课程笔记 Lecturer: Rui Fan、Yanchao Dong Lec0 Course Description Lec3 Perspective Transformation Lec7 Image Filtering Lec8 I…...
C++23 中的 ranges::starts_with 与 ranges::ends_with
文章目录 功能介绍ranges::starts_withranges::ends_with 示例代码编译器支持总结 C23 标准引入了 ranges::starts_with 和 ranges::ends_with,这两个算法由提案 P1659R3 提出,旨在为任意范围提供检查前缀和后缀的功能。 功能介绍 ranges::starts_wit…...
2025 uniapp的请求封装工具类以及使用【拿来就用】
一、创建一个http请求封装的js文件,名字自定义:my_http.js /*** 基础API请求地址(常量,全大写命名规范)* type {string}* constant*/ let BASE_URL //通过环境来判断基础路径 if (process.env.NODE_ENV development…...
Axure设计之内联框架切换页面、子页面间跳转问题
在Axure中,你可以通过以下步骤实现主页面中的内联框架在点击按钮时切换页面内容,从A页面切换到B页面。(误区:子页面之间切换不要设置“框架中打开链接”然后选“父级框架”这个交互) 主框架页面(左侧导航展…...
PyTorch 中神经网络相关要点(损失函数,学习率)及优化方法总结
笔记 1 神经网络搭建和参数计算 1.1 构建神经网络模型 import torch import torch.nn as nn # 线性模型和初始化方法 # todo:1-创建类继承 nn.module类 class ModelDemo(nn.Module):# todo:2-定义__init__构造方法, 构建神经网络def __init__(self):# todo:2-1 调用父…...
适用于 iOS 的 开源Ultralytics YOLO:应用程序和 Swift 软件包,用于在您自己的 iOS 应用程序中运行 YOLO
一、软件介绍 文末提供程序和源码下载 该项目利用 Ultralytics 最先进的 YOLO11 模型将您的 iOS 设备转变为用于对象检测的强大实时推理工具。直接从 App Store 下载该应用程序,或浏览我们的指南,将 YOLO 功能集成到您自己的 Swift 应用程序中。 二、…...
why FPGA喜欢FMC子卡?
FMC 即 FPGA Mezzanine Card ( FPGA中间层板卡),由子板模块、载卡两构成。 FMC 载卡:为子板模块提供插槽,使用母座FMC连接器。载卡连接器引脚与具有可配置IO资源的芯片例如FPGA引脚通过PCB设计连接在一起。。 盘古100…...
【优选算法 | 字符串】字符串模拟题精选:思维+实现解析
算法相关知识点可以通过点击以下链接进行学习一起加油!双指针滑动窗口二分查找前缀和位运算模拟链表哈希表 在众多字符串算法题中,有一类题目看起来没有太多算法技巧,却经常让人“翻车”——那就是字符串模拟题。这类题型往往不依赖复杂的数据…...
比亚迪固态电池突破:王传福的技术哲学与产业重构|创客匠人热点评述
合肥某车间凌晨两点依然灯火通明,工程师正在调试的银白色设备,即将颠覆整个电动车行业 —— 比亚迪全固态电池产线的曝光,标志着中国新能源汽车产业正式迈入 “技术定义市场” 的新纪元。 一、技术突破的底层逻辑 比亚迪全固态电池的核心竞…...
UUG杭州站 | 团结引擎1.5.0 OpenHarmony新Feature介绍
PPT下载地址:https://u3d.sharepoint.cn/:b:/s/UnityChinaResources/EaZmiWfAAdFFmuyd6c-7_3ABhvZoaM69g4Uo2RrSzT3tZQ?e2h7RaL 在2025年4月12日的Unity User Group杭州站中,Unity中国OpenHarmony技术负责人刘伟贤带来演讲《团结引擎1.5.0 OpenHarmony新…...