OpenCV之图像的运算(笔记05)
Posted 月疯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV之图像的运算(笔记05)相关的知识,希望对你有一定的参考价值。
图像加法:
#uint8 这是8位的无符号(0~255)
#图像加法(200+100=255)
print(cv2.add(np.uint8([200])),np.uint8([100]))
#普通加法(255+1=0)
print(np.uint8([200])+np.uint8([100]))
图像的减法:
#图像的减法(50-100=0)
print(cv2.subtract(np.uint8([50])),np.uint8([100]))
#普通减法(50-100=206)减到0的时候,再从255开始减
print(np.uint8([50])-np.uint8([100]))
图片的加法:
import numpy as np
import matplotlib.pyplot as plt
import cv2
#图像运算
def show(image):
plt.imshow(image)
plt.axis('off')
plt.show()
def imread(image):
image=cv2.imread(image)
#把图像的BGR转换成RGB
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
return image
#图片加法
image=imread('1.png')
#生成跟图片形状相同的并且权威100的数据
M = np.ones(image.shape,dtype='uint8')*100
#所有图片的像素加100
image=cv2.add(image,M)
show(image)
效果展示:
图片的减法:
import numpy as np
import matplotlib.pyplot as plt
import cv2
#图像运算
def show(image):
plt.imshow(image)
plt.axis('off')
plt.show()
def imread(image):
image=cv2.imread(image)
#把图像的BGR转换成RGB
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
return image
image=imread('1.png')
#图片减法
#生成跟图片形状相同的并且权威100的数据
M = np.ones(image.shape,dtype='uint8')*100
#所有图片的像素减100
image=cv2.subtract(image,M)
show(image)
图像的按位操作:
先绘制一个矩形和一个圆
import numpy as np
import matplotlib.pyplot as plt
import cv2
#图像位运算
def show(image):
plt.imshow(image)
plt.axis('off')
plt.show()
def imread(image):
image=cv2.imread(image)
#把图像的BGR转换成RGB
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
return image
rectangle=np.zeros((300,300,3),dtype='uint8')
white=(255,255,255)
cv2.rectangle(rectangle,(25,25),(275,275),white,-1)
show(rectangle)
在绘制一个圆:
import numpy as np
import matplotlib.pyplot as plt
import cv2
#图像位运算
def show(image):
plt.imshow(image)
plt.axis('off')
plt.show()
def imread(image):
image=cv2.imread(image)
#把图像的BGR转换成RGB
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
return image
circle = np.zeros((300,300,3),dtype='uint8')
cv2.circle(circle,(150,150),150,white,-1)
show(circle)
位操作:
#AND 与操作,有黑就变黑 image=cv2.bitwise_and(rectangle,circle) show(image)
#OR,或操作,有白就变白 image=cv2.bitwise_or(rectangle,circle) show(image)
#XOR,异或操作,黑白变白,黑黑和白白变黑 image=cv2.bitwise_xor(rectangle,circle) show(image)
#NOT,非操作,颜色取反 image=cv2.bitwise_not(circle) show(image)
以上是关于OpenCV之图像的运算(笔记05)的主要内容,如果未能解决你的问题,请参考以下文章