Opencv的图像基础

本文介绍了OpenCV中图像的基础操作,包括像素值的加减乘除运算,均值与方差计算,逻辑运算如与或操作,对比度调整,ROI选择,泛洪填充及其两种填充方法,以及不同类型的模糊操作,如均值、中值滤波和高斯模糊,用于图像去噪和锐化。
摘要由CSDN通过智能技术生成

 

 

像素值的运算加:

(两张图片的大小一致)

    加

dst1=cv.add(img1,img2)

    减:

dst2=cv.substract(img1,img2)

    乘:

dst3=cv.multiply(img1,img2)

乘法结果周围为什么会模糊:因为Linux图片本身周围有平滑 模糊,像素值不为0,相乘以后结果也不为0,所以结果周边会模糊

     除:

dst3=cv.devide(img1,img2)

均值 &方差:

M1=cv.mean(m1)
M2,dev2=cv.meanStdDev(M1)

M1结果: (62.23213225894814, 69.57398762783053, 70.43948308528122, 0.0)

各通道的均值

M2:         [[50.56140074]]   [[29.36527642]]

均值和标准方差

方差值高,证明像素值差异比较大,图像之间测差异也比较大,对比度也大

 

逻辑运算

dst5=cv.bitwise(img1,img2)

 

所有非0的都会有输出(有点像加)

dst=cv.bitwise_and()

dst=cv.bitwise_not()

3.对比度

函数中 输入的c 是对比度,b时调整亮度

def brightness_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('brightness_demo',dst)
src1=cv.imread('D:/img/13.jpg')
src2=cv.imread('D:/img/13-1.jpg')
src3=cv.imread('D:/img/j7-1.jpg')

brightness_demo(src3,1.2,10)
cv.waitKey(0)
cv.destroyAllWindows()

ROI

#roi
src4=cv.imread('D:/img/P.png')
face=src4[50:150,50:150]
gray=cv.cvtColor(face,cv.COLOR_BGR2GRAY)
backface=cv.cvtColor(gray,cv.COLOR_GRAY2BGR)
src4[50:150,50:150]=backface

cv.imshow('gray',src4)
cv.waitKey(0)
cv.destroyAllWindows()

泛洪填充

泛洪填充,如何填充一个对象内部:

--------FLOODFILL_FIXED_RANGE  改变图像,泛洪填充

--------FLOODFILL_MASK_ONLY     不改变图像,只填充遮盖层本身,忽略新的颜色值参数

 

def fill_color_deom(image):
    copyImg=image.copy()
    h,w=image.shape[:2]
    mask=np.zeros([h+2,w+2],np.uint8)   #  mask中一定要+2
    cv.floodFill(copyImg,mask,(30,30),(0,255,255),(100,100,100),(50,50,50),cv.FLOODFILL_FIXED_RANGE)
    cv.imshow('fill_color_deom',copyImg)
    cv.waitKey(0)

填充方法:

 1.彩色图片

cv.floodFill(copyImg,mask,(30,30),(0,255,255),(100,100,100),(50,50,50),cv.FLOODFILL_FIXED_RANGE)

(30,30)seedPoint 从这个像素点开始,

(30,30)这个点的像素值 +(100,100,100) 最低填充范围

  (30,30)这个点的像素值 +(50,50,50)最高填充范围

cv.FLOODFILL_FIXED_RANGE 表示在此范围内的都填充上黄色

    2.二值图像填充 

def fill_binary_deom():
    # 二值图像的填充
    image=np.zeros([400,400,3],np.uint8)
    image[100:300,100:300,:]=255
    cv.imshow('fill_binary_deom',image)

    mask=np.zeros([402,402,],np.uint8)
    mask[101:301,101:301]=0
    cv.floodFill(image,mask,(200,200),(100,2,255),cv.FLOODFILL_MASK_ONLY)
    cv.imshow('fill_binary',image)

 

注意! mask[101:301,101:301]=0

模糊操作 (卷积核一般是奇数)------>去噪

目录

 

 

像素值的运算加:

    加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值