首页 > 其他分享 >图像合成技术:将Logo嵌入背景图像

图像合成技术:将Logo嵌入背景图像

时间:2024-12-12 19:29:00浏览次数:11  
标签:ROI 嵌入 掩膜 图像 cv2 Logo logo

实验原理

在图像处理中,将一个图像(如Logo)合成到另一个图像(如背景图)是一个常见的任务。这种技术可以用于品牌宣传、广告制作等多种应用场景。本实验通过OpenCV库实现Logo的嵌入,主要涉及以下几个步骤:

  1. 图像读取:使用OpenCV的cv2.imread函数读取背景图像和Logo图像。
  2. 灰度化与二值化:将Logo图像转换为灰度图,然后通过二值化操作得到一个掩膜(mask),该掩膜用于后续的图像合成。
  3. 区域选择:在背景图像中选择一个区域(ROI),该区域将被用来放置Logo。
  4. 位运算:使用cv2.bitwise_and函数将ROI与Logo掩膜进行位与运算,以保留ROI中对应掩膜为白色(或非零)的部分。
  5. 图像融合:将位运算的结果与Logo图像进行融合,得到最终的合成图像。
  6. 替换与显示:将合成后的Logo区域替换回背景图像的相应位置,并显示最终结果。

实验代码

以下是实现上述步骤的Python代码:

import  cv2
# 输入两张图
img = cv2.imread("./bgc.jpeg")
logo = cv2.imread("./logo.png")
# 对logo图进行灰度化和二值化 得到 白底的掩膜
logo_gray = cv2.cvtColor(logo, cv2.COLOR_BGR2GRAY)


_, logo_binary = cv2.threshold(logo_gray,
                               0,      # 阈值
                               255,     # 最大值
                               cv2.THRESH_BINARY_INV    # 反阈值法
                               )

# 在原图中 选取和logo图同等大小的 你想要插入logo的位置
ROI = img[10:10+logo.shape[0], 100:100+logo.shape[1]]

# 将ROI 和 logo的掩膜进行位与运算
ROI_logo = cv2.bitwise_and(ROI,    # 参数1
                            ROI,    # 参数2
                            mask=logo_binary)   # logo做掩膜


# 将处理后的ROI区域 与 原始的logo 融合add
img_logo = cv2.add(ROI_logo, logo)

# 将融合的图像 在要添加logo的原图中 替换
img[10:10+logo.shape[0], 100:100+logo.shape[1]] = img_logo

cv2.imshow('image', img)
cv2.waitKey(0)

运行结果:

标签:ROI,嵌入,掩膜,图像,cv2,Logo,logo
From: https://blog.csdn.net/mi_shu_zi/article/details/144434161

相关文章

  • 谷歌 Gemini 2.0 支持音频和图像输出;吴恩达:当下最重要的技术是 Agentic AI,视觉 AI 是
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑......
  • 面试必会(嵌入式)-C语言面试高频(内存管理)
    1.(内存)堆和栈的区别⭐堆栈空间分配不同:栈由操作系统自动进行分配和释放,用于存放函数的参数值、局部变量的值等,具有高效性。堆:一般由程序员手动进行分配和释放,效率比栈低很多。data数据区:存放全局变量,静态变量。堆栈缓存方式不同:栈使用一级缓存,存储在处理器核心中,调用完......
  • 利用OpenCV和Numpy实现图像校正
    实验原理图像透视变换是一种几何变换,它能够将图像中的点从一个平面映射到另一个平面,通常用于校正图像中的透视失真或者创建特殊的视觉效果。在计算机视觉和图像处理中,透视变换可以通过找到一组对应点(原图中的点和目标图中的点)并计算透视变换矩阵来实现。透视变换的关键步骤:......
  • 数据增强技术在医学图像处理中的应用场景及实例分析|个人观点·24-12-12
    小罗碎碎念知识星球答疑今天在知识星球里收到了一个用户的提问,我觉得这个问题比较具有代表性,所以专门写一篇推送分析一下数据增强在医学影像中的应用。提问的人没有给出具体的包,所以我只能介绍一下我自己处理数据增强问题的思路。我会更关注模型,其次才是包——我首选......
  • 国标GB28181-2022平台LiteGBS摄像机图像有噪点、画面卡顿时,应如何操作?
    随着技术的不断进步与创新,LiteGBS国标GB28181软件将继续以其优势,为公共安全、城市管理和企业安防等领域提供更加高效和先进的视频监控解决方案。LiteGBS国标GB28181软件也将继续深耕视频监控领域,充分发挥H.265技术的优势,为各行各业用户提供更加高效、智能、可靠的视频监控解决方案......
  • AI智能分析视频分析网关接入监控后,画面显示无视频信号或图像不显示是什么原因?
    在监控项目的实施过程中,调试阶段常常会遇到各种问题,尤其是图像无法显示的情况。这种现象在监控系统调试中非常普遍,令许多技术人员感到困惑和挫败。究竟是什么原因导致这些问题的出现?如何有效地进行排查和解决?本文将总结在调试过程中遇到的常见问题及其解决方案,包括线缆问题、供电......
  • 部分代码: PyTorch计算机视觉实战:目标检测、图像处理与深度学习
     第一章#https://github.com/PacktPublishing/Modern-Computer-Vision-with-PyTorch#https://github.com/PacktPublishing/Modern-Computer-Vision-with-PyTorch###################ChapterOne#######################################importnumpyasnpfromco......
  • 蓝桥杯嵌入式模板创建(STM32 CubeMx简单使用教程)
    蓝桥杯嵌入式新板模板创建&简单经验分享补充在最前:以下原文是22年还未毕业时写的,仅在把板子二手卖给别人的时候给别人分享了这份笔记。那时经验不多,现在也由于工作使用的芯片不同已很久没有使用CubeMX了,因此文章可能有很多错漏之处,欢迎在评论区指出。备注在前:uint8_t即un......
  • opencv - py_photo - py_inpainting 图像修复
    文章目录图像修复目标基础知识代码其他资源练习图像修复目标在本章中,我们将学习如何通过一种称为修复的方法去除旧照片中的小噪音、笔触等我们将看到OpenCV中的修复功能。基础知识你们大多数人家里都会有一些旧的劣化照片,上面有一些黑点、一些笔触等。你有......
  • 韶音科技嵌入式面试题及参考答案
    Bootloader的启动流程是什么?Bootloader是在操作系统内核运行之前运行的一段小程序。它的启动流程主要分为以下几个阶段。首先是硬件初始化阶段。这个阶段会对处理器以及一些关键的硬件设备进行初始化。比如,会配置处理器的工作模式、设置堆栈指针等。以ARM处理器为例,会......