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 条评论
登录 后参与评论

相关文章

  • Python-OpenCV(1)

    前面的几个博客写的乱七八糟的,一来是初学数字图像,二是之前没有写过博客,所以对不起之前看我博客的各位啦!!!!!! 现在决定使用python重新写这个系列,不再...

    GavinZhou
  • java设计模式之创建型模式

    (1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

    GavinZhou
  • Caffe上训练使用自己的数据

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    GavinZhou
  • 03.【Kevin聊敏捷】项目生命周期之预测型生命周期

    预测型生命周期适用于需求明确,成本明确,时间明确的项目。会充分利用已知或者已经证明的事物/项目,进行项目开发。例如传统的建筑行业,造车行业,航空航天行业...

    开心的Kevin
  • Hive Tunning(二)优化存储

    接着上一章我们讲的hive的连接策略,现在我们讲一下hive的数据存储。 下面是hive支持的数据存储格式,有我们常见的文本,JSON,XML,这里我们主要...

    岑玉海
  • 对==与equals的比较的理解

    举例: String s1 = "abc"; String s2 = new String("abc"); String s3 = new String("ab...

    片刻
  • 数据分析经典图书大全,专治各种不懂!

    一、数据分析-入门篇 1.1《谁说菜鸟不会数据分析》 ? 作者:张文霖, 刘夏璐, 狄松 简介:本书按照数据分析工作的完整流程来讲解。全书共8章,分别讲解数据分...

    CDA数据分析师
  • 专为实时而构建:使用Apache Kafka进行大数据消息传递 第2部分

    在Apache Kafka简介的前半部分,您使用Kafka开发了几个小规模的生产者/消费者应用程序。从这些练习中,您应该熟悉Apache Kafka消息传递系统...

    银河1号
  • win10下apache superset的使用

    创建虚拟环境: -(1)virtualenv env_supersetobj(创建虚拟环境)

    步履不停凡
  • Fimh inhibitor

    用户2493118

扫码关注云+社区

领取腾讯云代金券