python-OpenCV图像的基本运算

本节主要是进行图像一些基本运算,包括加减乘除,均方差运算,亮度对比度,逻辑运算。
以上对图像的操作均是对像素的处理,bitwise_and、bitwise_or、bitwise_xor、bitwise_not这四个按位操作函数。
bitwise_and是对二进制数据进行“与”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“与”操作,1&1=1,1&0=0,0&1=0,0&0=0
bitwise_or是对二进制数据进行“或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“或”操作,1|1=1,1|0=0,0|1=0,0|0=0
bitwise_xor是对二进制数据进行“异或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“异或”操作,11=0,10=1,01=1,00=0
bitwise_not是对二进制数据进行“非”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“非”操作,1=0,0=1
利用掩膜(mask)进行“与”操作,即掩膜图像白色区域是对需要处理图像像素的保留,黑色区域是对需要处理图像像素的剔除,其余按位操作原理类似只是效果不同而已。

import cv2 as cv
import numpy as np
#加法运算
def add_demo(m1,m2):
    dst = cv.add(m1,m2)
    cv.imshow("add_demo",dst)
    #减法运算
def subtract_demo(m1,m2):
    dst = cv.subtract(m1,m2)
    cv.imshow("subtract_demo",dst)
    #除法运算
def divide_demo(m1,m2):
    dst = cv.divide(m1,m2)
    cv.imshow("divide_demo",dst)
    #乘法运算
def multiply_demo(m1,m2):
    dst = cv.multiply(m1,m2)
    cv.imshow("multiply_demo",dst)
 #均方差
def others(m1,m2):
    M1,dev1=cv.meanStdDev(m1)
    M2,dev2=cv.meanStdDev(m2)
    h,w=m1.shape[:2]
    print(M1)
    print(M2)
    print(dev1)
    print(dev2)

    img=np.zeros([h,w],np.uint8)
    m,dev = cv.meanStdDev(img)
    print(m)
    print(dev)
 #逻辑运算
def logic_demo(m1,m2):
    dst=cv.bitewise_and(m1,m2)
    dst2=cv.bitewise_or(m1,m2)
    dst3=cv.bitewise_not('sea.jpg')
    cv.imshow("logic_window3",dst3)
    cv.imshow("logic_window1",dst)
    cv.imshow("logic_window2",dst2)
#提取亮度和对比度
def contract_bright_demo(image,c,b):
    h,w,ch=image.shape
    blank = np.zeros([h,w,ch],image,dtype)
    dst = cv.addWeighted(image,c,blank,1-c,b)
    cv.imshow("contract_bright_demo",dst)

部分内容转自
原文链接:https://blog.csdn.net/Lily_9/article/details/83143120
发布了27 篇原创文章 · 获赞 5 · 访问量 3297

猜你喜欢

转载自blog.csdn.net/welcome_yu/article/details/105307092