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)

效果展示:

OpenCV之图像的运算(笔记05)_第1张图片

图片的减法:

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)

OpenCV之图像的运算(笔记05)_第2张图片

 

图像的按位操作:

先绘制一个矩形和一个圆

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)

OpenCV之图像的运算(笔记05)_第3张图片

在绘制一个圆:

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)

OpenCV之图像的运算(笔记05)_第4张图片

位操作:

#AND 与操作,有黑就变黑
image=cv2.bitwise_and(rectangle,circle)
show(image)

OpenCV之图像的运算(笔记05)_第5张图片

#OR,或操作,有白就变白
image=cv2.bitwise_or(rectangle,circle)
show(image)

OpenCV之图像的运算(笔记05)_第6张图片

#XOR,异或操作,黑白变白,黑黑和白白变黑
image=cv2.bitwise_xor(rectangle,circle)
show(image)

OpenCV之图像的运算(笔记05)_第7张图片

#NOT,非操作,颜色取反
image=cv2.bitwise_not(circle)
show(image)

OpenCV之图像的运算(笔记05)_第8张图片

 

 

你可能感兴趣的:(【OpenCV】)