OpenCV(四)图像算术、混合

来源:互联网 发布:棉麻格子连衣裙淘宝 编辑:程序博客网 时间:2024/06/04 23:27

一、图像加减法

# -*- coding: utf-8 -*-'''Created on 2017年10月06日 14时00分17秒 @author: mckee'''import cv2import numpy as npimg1 = cv2.imread('../sony6.jpg')img2 = cv2.imread('../sony2.jpg')#图像加减法eg1 = img1 + img2eg3 = cv2.add(img1,img2)  # add更加白,与直接加 差别很大eg2 = img1 -15

二、图像混合、叠影效果

#公式:dst2 = img1 * 0.7 + img2 * 0.3 + light (常数,越大越亮)dst = cv2.addWeighted(img1,0.7,img2,0.3,0)

三、按位运算
这里,将一张图的logo和谐地移到另一张图上的感兴趣区域。

logo = img2[440:600,700:1200] #VAIO的logoroi = img1[0:160,0:500]#opencv中需先转成灰度图,才能进行二值化img2gray = cv2.cvtColor(logo,cv2.COLOR_BGR2GRAY)ret, mask = cv2.threshold(img2gray,175,255,cv2.THRESH_BINARY) #二值化#ret = 175(阈值), mask 为二值化图像;小于阈值为0,大于阈值为1mask_inv = cv2.bitwise_not(mask) #将图像取反,黑变成白,白变成黑img1_bg = cv2.bitwise_and(roi,roi,mask=mask_inv)img2_fg = cv2.bitwise_and(logo,logo,mask = mask)dst = cv2.add(img1_bg,img2_fg)img1[0:160,0:500] = dstcv2.imshow('54435',img1)

结果展示一下:

这里写图片描述

原创粉丝点击