Python-OpenCV(4)

我想把 NBA 的标志放到另一幅图像(LBJ传球)上。但是现在有个问题: 如果我使用加法,颜色会改变,如果使用混合,会得到透明效果,但是我不想要透明的 于是我们可以通过下面的按位运算实现:

cv2.bitwise_and() cv2.bitwise_or() cv2.bitwise_xor() cv2.bitwise_not()

这些API的意思,就是你看到的,AND、OR、XOR、NOT 二值运算,相信这些大家肯定都懂

代码:

__author__ = 'gavinzhou'
# -*- coding: utf-8 -*-

import cv2

# read the images
im1 = cv2.imread("./images/1.png")
im2 = cv2.imread("./images/logo.jpg")

# show the original images
cv2.imshow("IM1", im1)
cv2.imshow("IM2", im2)

# set the ROI
roi = im1[0:im2.shape[0], 0:im2.shape[1], :]
cv2.imshow("ROI", roi)

# create mask of the im2
im2_gray = cv2.cvtColor(im2, cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(im2_gray, 180, 255, cv2.THRESH_BINARY)
mask_inv = cv2.bitwise_not(mask)

# get the bg and fg image of im2
im2_bg = cv2.bitwise_and(roi, roi, mask=mask_inv)
im2_fg = cv2.bitwise_and(im2, im2, mask=mask)

# add the roi to fg image
im_dst = cv2.add(im2_bg, im2_fg)

# set the image region to im1
im1[0:im2.shape[0], 0:im2.shape[1], :] = im_dst

# show all the images
cv2.imshow("IM2_BG", im2_bg)
cv2.imshow("IM2_FG", im2_fg)
cv2.imshow("FIN_FG", im1)
cv2.waitKey(9000)
cv2.destroyAllWindows()

结果: 原始的小图(im1和im2)

roi和bg和fg

最终结果

结果上看的出来,我已经把NBA的logo放到了LBJ的图上,这种效果就类似与PS的图层效果,一层归一层互不影响,如果使用加法会改变原来的颜色,混合则会产生透明,对于图层的效果,使用位运算是最好的

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据小魔方

不等宽柱形图

今天要跟大家分享的图表是不等宽柱形图! ▽▼▽ 基础等柱形图一般只能展示一个维度的数据,但是如果想要在柱形图中同时展示两个维度的数据(柱高一个维度、柱宽另一个维...

2755
来自专栏Python小屋

Python绘制带有中文标签和图例的图

本文属于科学计算与可视化范畴,要点在于扩展库numpy、pylab、matplotlib的用法。 import numpy as np import pylab...

3426
来自专栏开源FPGA

MATLAB数字图像处理学习笔记

   我们都知道一幅图片就相当于一个二维数组,可以用一个矩阵来表示,而MATLAB可以说就是为矩阵运算而生的,所以学习图像处理,学习MATLAB势在必行!  一...

1835
来自专栏程序员宝库

15 分钟破解网站验证码

作者: xiaochao 原文:http://www.bugcode.cn/break_captcha.html 概述 很多开发者都讨厌网站的验证码,特别是写网...

3487
来自专栏潇涧技术专栏

Head First PageRank

PageRank算法是谷歌曾经独步天下的“倚天剑”,该算法由Larry Page和Sergey Brin在斯坦福大学读研时发明的,论文点击下载: The Pag...

792
来自专栏编程语言

Python:pygame的初步使用(pygame.draw)(二)

692
来自专栏腾讯移动品质中心TMQ的专栏

【腾讯TMQ】看图测试指南:图像识别在测试中的应用

也许我们使用过Uiautomator或Monkey来进行系统的测试。但在使用过程中总出现用Uiautomator没法识别、用Monkey无法法复现等问题……本文...

5510
来自专栏逍遥剑客的游戏开发

有向无环图的自动布局算法

1555
来自专栏phodal

【工具推荐】图像界的魔术师 ImageMagick

如果说 Pandoc 里文档界的瑞士军刀,那么 ImageMagick 就是图形界的瑞士军刀。 上周在为 Growth 制作插图的时候,需要:1. 合并不同的图...

2306
来自专栏贾志刚-OpenCV学堂

OpenCV实现图像连通组件标记与分析

连接组件标记算法(connected component labeling algorithm)是图像分析中最常用的算法之一,算法的实质是扫描一幅图像的每个像素...

952

扫码关注云+社区