> 文章列表 > Opencv+Python笔记(三)图像的基本运算

Opencv+Python笔记(三)图像的基本运算

Opencv+Python笔记(三)图像的基本运算

图像的基本运算

      • 1.图像的加法运算
      • 2.图像的混合
      • 3.图像的位运算

1.图像的加法运算

两种加法

  1. 使用OpenCv的cv.add()函数将两幅图像简单相加(饱和操作 若结果大于255 则取255)

Opencv API:

cv2.add(src1, src2, dst, mask, dtype)
# 简略写法
cv2.add(src1, src2)

输入:src1 src2:需要相加的两张图片;dst:相加后的输出图像(可省略);mask:掩码矩阵(可省略),mask 是一个8位的单通道图像,它指定了目标图像哪些元素会被修改;dtype:输出图像的深度(可省略)
输出:相加后的所得图片

  1. 简单的通过Numpy操作将两幅图像直接相加(img3 = img1 + img2)(模运算 最后的结果模256)
    **注意:**两种加法所用的两种图像都应该具有相同的shape即相同的大小(size)和通道数(channels)

2.图像的混合

图像的混合也是图像加法的一种类型,不过可以改变两个图像相加时的权重大小

Opencv API:

cv2.addWeighted(src1, α, src2, β, γ)

输入:1.src1,src2:相加图像;2.α,β:分别为src1和src2的权重
输出:输出相加后的图像 img = src1 * α + src2 * β

3.图像的位运算

裁剪ROI时经常会用到图像的位运算

Opencv API:

cv2.bitwise_and(img1,img2,mask=mask)  #与运算
cv2.bitwise_or(img1,img2,mask=mask)  #或运算
cv2.bitwise_xor(img1,img2,mask=mask)  #异或运算
cv2.bitwise_not(img)  #非运算

输入:img1,img2:要进行运算的图片;2.mask:掩膜
输出:运算结果图片