Python处理图像 加、减、与非

转:https://blog.csdn.net/jnulzl/article/details/47129887

一、函数简介

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 np

image = 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、相加后的结果 
这里写图片描述

2、原图像每个像素都减去50,小于0的按0处理

代码如下:

#encoding:utf-8

#
#图像运算
#

import cv2
import numpy as np

image = 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、矩形与圆形的交运算

代码如下:

#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",![这里写图片描述](https://img-blog.csdn.net/20150729200613202)Circle)
cv2.waitKey(0)

#图像的交
bitwiseAnd = cv2.bitwise_and(Rectangle,Circle)
cv2.imshow("AND",bitwiseAnd)
cv2.waitKey(0)

结果如下: 
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、图像或后的结果 
这里写图片描述

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、图像相交后的结果 
这里写图片描述

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、圆形取非后的结果 
这里写图片描述

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python可以通过图像处理技术来识别图片中的符号。首先,我们可以使用Python图像处理库,如OpenCV或PIL来载和处理图片。然后,我们可以使用图像处理算法来提取图片中的符号。 对于符号的识别,我们可以采用以下方法: 1. 图像处理:首先,我们可以对图像进行预处理,如灰度化、二值化和去噪声处理,以提高图像的质量和对比度。 2. 特征提取:然后,我们可以使用常见的特征提取算法,如SIFT、SURF或HOG,来提取图像中的特征点。这些特征点可以表示图像的关键特征,包括符号的形状和边缘信息。 3. 模板匹配:接下来,我们可以使用模板匹配算法,如基于模板匹配的方法或基于特征描述子的方法,在图像中搜索并匹配符号的特征。这可以通过计算图像中的特征点与已知的符号特征模板之间的距离或相似性来实现。 4. 机器学习方法:除了传统的图像处理算法,我们还可以使用机器学习方法来识别符号。例如,我们可以使用深度学习的方法,如卷积神经网络(CNN),来训练一个模型来识别符号。通过提供大量的带有标签的符号图像作为训练集,神经网络可以学习到符号的特征,并能够在新的图像上进行准确的识别。 综上所述,Python可以使用图像处理和机器学习技术来识别图片中的符号。这些方法可以根据预处理、特征提取、模板匹配和机器学习等步骤来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值