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)的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV学习笔记之课后习题练习3-5

OpenCV学习笔记 008基于形态学运算的图像变换

opencv学习记录之图像运算

OpenCV图像处理应用(面向Python)之图像运算

OpenCV基本功 之 图像的掩模运算 & 合并专题 -小啾带学Python-Open_CV系列

openCV之图像基础(笔记02)