当前位置: 首页 > news >正文

opencv—常用函数学习_“干货“_2

目录

五、矩阵计算函数

归一化矩阵 (normalize)

转置矩阵 (transpose)

求矩阵的逆 (invert)

翻转矩阵 (flip)

旋转矩阵 (rotate)

求矩阵的行列式 (determinant)

求矩阵的迹 (trace)

求矩阵的特征值和特征向量 (eigen)

六、代数运算

矩阵加法 (add)

矩阵减法 (subtract)

矩阵乘法 (multiply)

矩阵除法 (divide)

计算绝对差 (absdiff)

按比例放大并相加 (scaleAdd)

按权重相加 (addWeighted)

七、逻辑运算

按位与操作 (bitwise_and)

按位或操作 (bitwise_or)

按位取反操作 (bitwise_not)

按位异或操作 (bitwise_xor)

http://t.csdnimg.cn/i8pqt —— opencv—常用函数学习_“干货“_总(VIP)

散的正在一部分一部分发,不需要VIP。

资料整理不易,有用话给个赞和收藏吧。


五、矩阵计算函数

        在OpenCV中,Mat对象提供了丰富的矩阵计算功能,这些功能可以用于图像处理、机器学习、计算机视觉等领域。下面是一些常用的矩阵计算函数及其使用示例。

矩阵计算函数
normalizetransposeinvertfliprotate
归一化矩阵转置矩阵求矩阵的逆翻转矩阵旋转矩阵
determinanttraceeigencalcCovarMatrixsolve
求矩阵的行列式求矩阵的迹求矩阵的特征值和特征向量计算协方差矩阵求解线性方程组
solveCubicsolvePolySVDcomputemaxmin
求解三次方程求解多项式方程奇异值分解求矩阵元素的最大值求矩阵元素的最小值
comparerepeatPSNRcrossdot
比较矩阵重复矩阵峰值信噪比向量的叉乘向量的点乘
归一化矩阵 (normalize)
import cv2
import numpy as np# 创建一个矩阵
matrix = np.array([[1, 2], [3, 4]], dtype=np.float32)# 归一化矩阵
normalized_matrix = cv2.normalize(matrix, None, 0, 1, cv2.NORM_MINMAX)
print("Normalized Matrix:\n", normalized_matrix)
转置矩阵 (transpose)
# 转置矩阵
transposed_matrix = cv2.transpose(matrix)
print("Transposed Matrix:\n", transposed_matrix)
求矩阵的逆 (invert)
# 创建一个可逆矩阵
invertible_matrix = np.array([[1, 2], [3, 4]], dtype=np.float32)# 求矩阵的逆
inverse_matrix = cv2.invert(invertible_matrix)[1]
print("Inverse Matrix:\n", inverse_matrix)
翻转矩阵 (flip)
# 翻转矩阵(沿Y轴翻转)
flipped_matrix = cv2.flip(matrix, 1)
print("Flipped Matrix:\n", flipped_matrix)
旋转矩阵 (rotate)
# 翻转矩阵(沿Y轴翻转)
flipped_matrix = cv2.flip(matrix, 1)
print("Flipped Matrix:\n", flipped_matrix)
求矩阵的行列式 (determinant)
# 求矩阵的行列式
determinant_val = cv2.determinant(invertible_matrix)
print("Determinant Value:", determinant_val)
求矩阵的迹 (trace)
# 求矩阵的迹
trace_val = cv2.trace(matrix)[0]
print("Trace Value:", trace_val)
求矩阵的特征值和特征向量 (eigen)
# 求矩阵的特征值和特征向量
eig_vals, eig_vecs = cv2.eigen(invertible_matrix)
print("Eigenvalues:\n", eig_vals)
print("Eigenvectors:\n", eig_vecs)

        这些示例展示了如何使用OpenCV中的矩阵计算函数来处理Mat对象。根据具体的应用需求,可以组合这些函数来实现复杂的矩阵运算和图像处理任务。

六、代数运算

        在OpenCV中,代数运算函数用于对矩阵进行基本的代数运算。这些函数可以方便地实现加法、减法、乘法、除法等操作。下面介绍这些代数运算函数及其使用示例。

代数运算函数
addsubtractmultiplydivide
矩阵加法矩阵减法矩阵乘法(逐元素相乘)矩阵除法(逐元素相除)
absdiffscaleAddaddWeighted
计算两个矩阵的绝对差按比例放大并相加按权重相加
矩阵加法 (add)
import cv2
import numpy as np# 创建两个矩阵
matrix1 = np.array([[1, 2], [3, 4]], dtype=np.uint8)
matrix2 = np.array([[5, 6], [7, 8]], dtype=np.uint8)# 矩阵加法
result_add = cv2.add(matrix1, matrix2)
print("Addition Result:\n", result_add)
矩阵减法 (subtract)
import cv2
import numpy as np# 创建两个矩阵
matrix1 = np.array([[1, 2], [3, 4]], dtype=np.uint8)
matrix2 = np.array([[5, 6], [7, 8]], dtype=np.uint8)# 矩阵加法
result_add = cv2.add(matrix1, matrix2)
print("Addition Result:\n", result_add)
矩阵乘法 (multiply)
# 矩阵乘法(逐元素相乘)
result_mul = cv2.multiply(matrix1, matrix2)
print("Multiplication Result:\n", result_mul)
矩阵除法 (divide)
# 矩阵除法(逐元素相除)
result_div = cv2.divide(matrix1, matrix2)
print("Division Result:\n", result_div)
计算绝对差 (absdiff)
# 计算两个矩阵的绝对差
result_absdiff = cv2.absdiff(matrix1, matrix2)
print("Absolute Difference Result:\n", result_absdiff)

按比例放大并相加 (scaleAdd)
# 按比例放大并相加
scale = 2.5
result_scaleAdd = cv2.scaleAdd(matrix1, scale, matrix2)
print("Scale Add Result:\n", result_scaleAdd)

按权重相加 (addWeighted)
# 按权重相加
alpha = 0.7
beta = 0.3
gamma = 0  # 可选偏移量
result_addWeighted = cv2.addWeighted(matrix1, alpha, matrix2, beta, gamma)
print("Weighted Addition Result:\n", result_addWeighted)

        这些示例展示了如何使用OpenCV中的代数运算函数来对Mat对象进行各种基本的代数运算。根据具体的应用需求,可以组合这些函数来实现复杂的图像处理和矩阵计算任务。

七、逻辑运算

        在OpenCV中,逻辑运算函数用于对图像或矩阵进行像素级的逻辑操作。这些操作包括与(AND)、或(OR)、非(NOT)、异或(XOR)等。下面是这些逻辑运算函数的介绍及其使用示例。

逻辑运算函数
bitwise_andbitwise_orbitwise_notbitwise_xor
对两个矩阵进行按位与操作对两个矩阵进行按位或操作对矩阵进行按位取反操作对两个矩阵进行按位异或操作
按位与操作 (bitwise_and)
import cv2
import numpy as np# 创建两个矩阵
matrix1 = np.array([[1, 2], [3, 4]], dtype=np.uint8)
matrix2 = np.array([[5, 6], [7, 8]], dtype=np.uint8)# 按位与操作
result_and = cv2.bitwise_and(matrix1, matrix2)
print("Bitwise AND Result:\n", result_and)
按位或操作 (bitwise_or)
# 按位或操作
result_or = cv2.bitwise_or(matrix1, matrix2)
print("Bitwise OR Result:\n", result_or)
按位取反操作 (bitwise_not)
# 按位取反操作
result_not = cv2.bitwise_not(matrix1)
print("Bitwise NOT Result:\n", result_not)
按位异或操作 (bitwise_xor)
# 按位异或操作
result_xor = cv2.bitwise_xor(matrix1, matrix2)
print("Bitwise XOR Result:\n", result_xor)

        这些示例展示了如何使用OpenCV中的逻辑运算函数来对Mat对象进行各种按位逻辑操作。这些操作在图像处理和计算机视觉中非常有用,特别是在掩模操作、图像合成和图像增强等应用中。根据具体的需求,可以灵活组合这些函数来实现复杂的图像处理任务。

http://www.lryc.cn/news/401479.html

相关文章:

  • 解析CSS与JavaScript的使用方法及ECMAScript语法规则
  • 从零开始学习嵌入式----结构体struct和union习题回顾
  • 建筑产业网元宇宙的探索与实践
  • 比较RMI、HTTP+JSON/XML、gRPC
  • 软件工程-可行性分析
  • iOS ------ 消息传递和消息转发
  • 计算机视觉之Vision Transformer图像分类
  • 【深度学习】BeautyGAN: 美妆,化妆,人脸美妆
  • RocketMQ~架构与工作流程了解
  • 学习Python的IDE功能--(一)入门导览
  • gdb调试多线程程序
  • 实战GraphRAG(一):初步体验GraphRAG及其与RAG的对比
  • 37、PHP 实现一个链表中包含环,请找出该链表的环的入口结点
  • LIMS系统对实验室管理有哪些帮助?
  • 在GPU上运行PyTorch
  • 【内网穿透】打洞笔记
  • 第59期|GPTSecurity周报
  • 算法2--贪心算法
  • 本地部署 EVE: Unveiling Encoder-Free Vision-Language Models
  • 阿里云CDN- https(设计支付宝春节开奖业务)
  • 为何众多卖家选择加入亚马逊VC平台?他们的决策依据是什么?
  • Windows与Linux双机热备软件推荐
  • Mysql基础与安装
  • 线程的死锁和并发安全
  • docker 启动提示can not create sys fs cgroup cpuset....问题处理
  • [C/C++入门][ifelse]19、制作一个简单计算器
  • API取数实战:企业微信API取数教程
  • AI算法18-最小角回归算法Least Angle Regression | LARS
  • wordpress 调用另外一个网站的内容 按指定关键词调用
  • kotlin数据类型