Qt+OpenCV联合开发(十二)--图像像素的逻辑操作

2023-10-23 22:50

本文主要是介绍Qt+OpenCV联合开发(十二)--图像像素的逻辑操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、基本知识

对图像中的位操作:

- bitwise_and    //按位与
- bitwise_or     //按位或
- bitwise_xor    //按位异或

取反操作:- bitwise_not   

二、函数原型

1、逻辑操作——bitwise_and    、 bitwise_or  、 bitwise_xor、bitwise_not函数

 

1、 bitwise_and    、 bitwise_or  、 bitwise_xor  的参数都一样:

参数一:输入图片1
参数二:输入图片2
参数三:输出图片

2、bitwise_not 的参数:

参数一:输入图片
参数二:输出图片

 2、绘制矩形框——rectangle函数

参数一:输入的图片
参数二:矩形的坐标(左上角坐标和宽高)
参数三:矩形的颜色
参数四:线条宽度(小于0表示填充,大于0表示绘制矩形,这里为-1)
参数五:要消灭锯齿的不同的绘制方法,要么不管这个锯齿,要么就是管这个锯齿,进行四邻域或者八邻域的绘制,LINE_AA(处理的像素点最多,但速度响应变慢(反锯齿))、LINE_8(推荐)、LINE_4
参数六:中心坐标或者半径坐标的小数位数,默认为0

三、实现效果

1、位操作与

2、位操作或

3、取反操作

4、异或操作

 

四、代码

void test1::bit_operate(Mat &image)
{Mat m1 = Mat::zeros(Size(256,256),CV_8UC3);Mat m2 = Mat::zeros(Size(256,256),CV_8UC3);//Scalar为矩形的颜色,-1表示填充,大于0表示绘制矩形//创建了m1、m2两个尺寸为(256,256)的8位uchar类型的3通道矩阵rectangle(m1,Rect(100,100,80,80),Scalar(186,85,211),-1,LINE_8,0);//绘制矩形rectangle(m2,Rect(150,150,80,80),Scalar(30,144,255),-1,LINE_8,0);imshow("rectangle M1",m1);imshow("rectangle M2",m2);Mat dst;//对两个窗口中绘制的矩形进行以下操作
//    bitwise_and(m1, m2, dst);//位操作与
//    bitwise_or(m1, m2, dst);//位操作或bitwise_not(image, dst);//取反操作bitwise_xor(m1, m2, dst);//异或操作imshow("bitwise_xor",dst);
}

  原创不易,转载请注明出处:

https://blog.csdn.net/hml111666/article/details/122730371

这篇关于Qt+OpenCV联合开发(十二)--图像像素的逻辑操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/270974

相关文章

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad