openCV—Python(6)—— 图像算数与逻辑运算
openCV—Python(6)—— 图像算数与逻辑运算
一、函数简介
1、add—图像矩阵相加
函数原型:add(src1, src2, dst=None, mask=None, dtype=None)
src1:图像矩阵1
src1:图像矩阵2
dst:默认选项
mask:默认选项
dtype:默认选项
2、subtract—图像矩阵相加
函数原型:subtract(src1, src2, dst=None, mask=None, dtype=None)
src1:图像矩阵1
src1:图像矩阵2
dst:默认选项
mask:默认选项
dtype:默认选项
3、bitwise_and—图像与运算
函数原型:bitwise_and(src1, src2, dst=None, mask=None)
src1:图像矩阵1
src1:图像矩阵2
dst:默认选项
mask:默认选项
4、bitwise_or—图像或运算
函数原型:bitwise_and(src1, src2, dst=None, mask=None)
src1:图像矩阵1
src1:图像矩阵2
dst:默认选项
mask:默认选项
5、bitwise_xor—图像异或运算
函数原型:bitwise_and(src1, src2, dst=None, mask=None)
src1:图像矩阵1
src1:图像矩阵2
dst:默认选项
mask:默认选项
6、bitwise_not—图像非运算
函数原型:bitwise_and(src1, src2, dst=None, mask=None)
src1:图像矩阵1
src1:图像矩阵2
dst:默认选项
mask:默认选项
二、实例演练
1、原图像每个像素都加100,大于255的按255处理
代码如下:
#encoding:utf-8#
#图像运算
#import cv2
import numpy as npimage = cv2.imread("H:\\img\\lena.jpg")
cv2.imshow("Original",image)
cv2.waitKey(0)
#图像image各像素加100
M = np.ones(image.shape,dtype="uint8")*100#与image大小一样的全100矩阵
added = cv2.add(image,M)#将图像image与M相加
cv2.imshow("Added",added)
cv2.waitKey(0)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
结果如下:
1、原图像
2、相加后的结果
2、原图像每个像素都减去50,小于0的按0处理
代码如下:
#encoding:utf-8#
#图像运算
#import cv2
import numpy as npimage = cv2.imread("H:\\img\\lena.jpg")
cv2.imshow("Original",image)
cv2.waitKey(0)
#图像image各像素减去50
M = np.ones(image.shape,dtype="uint8")*50#与image大小一样的全50矩阵
subtracted = cv2.subtract(image,M)#将图像image与M相减
cv2.imshow("Subtracted", subtracted)
cv2.waitKey(0)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
结果如下:
1、原图像
2、相减后的结果
3、矩形与圆形的交运算
代码如下:
#encoding:utf-8#
#图像的逻辑运算
#import numpy as np
import cv2#画矩形
Rectangle = np.zeros((300,300),dtype="uint8")
cv2.rectangle(Rectangle,(25,25),(275,275),255,-1)
cv2.imshow("Rectangle",Rectangle)
cv2.waitKey(0)#画圆形
Circle = np.zeros((300,300),dtype="uint8")
cv2.circle(Circle,(150,150),150,255,-1)
cv2.imshow("Circle",![这里写图片描述](http://img.blog.csdn.net/20150729200613202)Circle)
cv2.waitKey(0)#图像的交
bitwiseAnd = cv2.bitwise_and(Rectangle,Circle)
cv2.imshow("AND",bitwiseAnd)
cv2.waitKey(0)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
结果如下:
1、矩形与圆形
2、图像相交后的结果
4、矩形与圆形的或运算
代码如下:
#encoding:utf-8#
#图像的逻辑运算
#import numpy as np
import cv2#画矩形
Rectangle = np.zeros((300,300),dtype="uint8")
cv2.rectangle(Rectangle,(25,25),(275,275),255,-1)
cv2.imshow("Rectangle",Rectangle)
cv2.waitKey(0)#画圆形
Circle = np.zeros((300,300),dtype="uint8")
cv2.circle(Circle,(150,150),150,255,-1)
cv2.imshow("Circle",Circle)
cv2.waitKey(0)#图像的或
bitwiseOr = cv2.bitwise_or(Rectangle,Circle)
cv2.imshow("OR",bitwiseOr)
cv2.waitKey(0)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
结果如下:
1、矩形与圆形
2、图像或后的结果
5、矩形与圆形的异或运算
代码如下:
#encoding:utf-8#
#图像的逻辑运算
#import numpy as np
import cv2#画矩形
Rectangle = np.zeros((300,300),dtype="uint8")
cv2.rectangle(Rectangle,(25,25),(275,275),255,-1)
cv2.imshow("Rectangle",Rectangle)
cv2.waitKey(0)#画圆形
Circle = np.zeros((300,300),dtype="uint8")
cv2.circle(Circle,(150,150),150,255,-1)
cv2.imshow("Circle",Circle)
cv2.waitKey(0)#图像的异或
bitwiseXor = cv2.bitwise_xor(Rectangle,Circle)
cv2.imshow("XOR",bitwiseXor)
cv2.waitKey(0)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
结果如下:
1、矩形与圆形
2、图像相交后的结果
6、圆形的非运算
代码如下:
#encoding:utf-8#
#图像的逻辑运算
#import numpy as np
import cv2#画圆形
Circle = np.zeros((300,300),dtype="uint8")
cv2.circle(Circle,(150,150),150,255,-1)
cv2.imshow("Circle",Circle)
cv2.waitKey(0)#圆形的非运算
bitwiseNot = cv2.bitwise_not(Circle)
cv2.imshow("NOT",bitwiseNot)
cv2.waitKey(0)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
结果如下:
1、圆形
2、圆形取非后的结果
openCV—Python(6)—— 图像算数与逻辑运算相关推荐
- Python 计算机视觉(四)—— OpenCV进行图像算数与逻辑运算
目录 1. 图像加法运算 (1)随机生成灰度图像 (2)读取原始图像 (3)两图像相加 (4)图像像素点加常数 2. 图像减法运算 (1)减小亮度 (2)还原添加灰度图像的图像 3. 图像与运算 4. ...
- OpenCV python 提取图像内的三色
OpenCV python 提取图像内的三色 原图 [opencv.jpg] import cv2 import numpy as npdef main():# 1.导入图片img_src = cv2 ...
- python opencv 图像切割_【OpenCV+Python】图像的基本操作与算术运算
图像的基本操作 在上个教程中,我们介绍了使用鼠标画笔的功能.本次教程,我们将要谈及OpenCV图像处理的基本操作. 本次教程的所有操作基本上都和Numpy相关,而不是与OpenCV相关.要使用Open ...
- OpenCV—Python PyLibTiff_psd 图像基本操作以及图像格式转换
文章目录 一.图片 读.写.显示.属性查看 libtiff 包装器 Python 模块 opencv 模块 PIL 模块 直接修改图片格式 大(分辨率大)图片缩小 与上面代码同效 二.PSD图像读取与 ...
- opencv+python实现图像的增强与合成(人像迁移)
代码链接:图像的增强与合成 最近做了一个小实验,内容是图像的增强与合成,觉着挺有意思,记录一下. 首先效果是这样的: 利用Python和Opencv算法,实现下述功能: 1. 准备本人在纯色背景前的照 ...
- OpenCV+python:图像梯度
1,图像梯度的概念 梯度简单来说就是求导,在图像上表现出来的就是提取图像的边缘(无论是横向的.纵向的.斜方向的等等),所需要的是一个核模板.模板的不同结果也不同.所以能够看到,全部的这些个算子函数,归 ...
- OpenCV+python:图像金字塔
1,图像金字塔的概念 图像金字塔是一种以多分辨率来解释图像的有效但概念简单的结构.应用于图像分割,机器视觉和图像压缩.一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图 ...
- OpenCV+python:图像二值化
1,图像二值化概念及方法 一个像素点的颜色是由RGB三个值来表现的,所以一个像素点矩阵对应三个颜色向量矩阵,分别是R矩阵,G矩阵,B矩阵,它们也都是同样大小的矩阵. 在图像处理中,用RGB三个分量(R ...
- python的image读取的图片是什么类型的-opencv python 读取图像/显示图像/保存图像...
以前也用过opencv, 不过都是按需使用, 掌握的知识很零散, 这次希望能够系统学习opencv-python 本文直接从Gui Features开始. 1 读取图片 使用cv2.imread()函 ...
最新文章
- 解决ifconfig命令未找到
- C++学习笔记-----用位运算实现加减乘除
- 一个比较方便的转换NSString为UTF8编码的函数
- 手机照片丢失或误删如何恢复
- python处理字符串数组慢_Python字符串处理 - str/bytes
- Python3条件判断
- java 交互式 shell_Java9 Shell工具(JShell)
- Atitit 发帖机实现(2)---usrQBN2243 文本解析到对象协议规范
- 聊一聊我在 B 站上自学编程的经历吧!
- 解放双手,CSDN博客支持公众号自动同步!
- 数资问题【抽屉问题】
- led灯条串联图_LED灯如何串联?
- 计算机专用计算器,功率计算器
- iBox-面向Flutter的一站式研发工作台
- 论文精读(1)-- Lipschitz constrained parameter initialization for deep transformers
- WAP(wml)开发问答
- 湖北5G继续加码!今年投资64亿元,新建5G基站5万个
- Ceph剖析:Leader选举
- 折纸 瓦力机器人_一张纸成千种形态机器人:折纸机器人,神奇的创造
- 计算机桌面显示器,屏幕分辨率
热门文章
- 将两个数组河滨_两名3岁男孩在河滨公园玩耍迷了路 幸亏被好心人“捡”到
- android java 时间测试方法_一个让你开挂的Android 性能测试方法
- feign_与Feign客户轻松进行REST通信
- 三星r381android+wear,三星新路线图:Android Wear手表/Tizen手机
- redux异步action_Redux数据状态管理
- 渲染测试软件 d15,D5 Render(D5 渲染器)1.7.0 正式版发布 | 一款 RTX 实时光线追踪可视化实时渲染引擎,而且是国产软件!...
- 仍然报错_详解oracle经典报错:ORA-04030排错思路和解决方法
- iOS 15.2计划上线“数字遗产”!网友:管的真远,身后事都替我操心?
- 遇到Request header is too large,你们是如何解决的?
- 阿里云AI发女朋友啦!