基于OpenCV的图像融合

重磅干货,第一时间送达

本期我们将一起学习如何使用OpenCV的进行图像拼接。

01. 目录
  • python

  • 入门

  • 步骤1 —图像导入

  • 步骤2-调整图像大小

  • 步骤3-融合图像

  • 步骤4-导出结果

02. Python

Python是一种通用的编程语言,在分析数据方面非常流行,它还可以让帮助我们快速工作并更有效地集成系统。

03. 入门

对于该项目,我们将仅使用OpenCV库。在处理计算机视觉项目时,OpenCV是必备软件包。OpenCV(开源计算机视觉库)是一个开源计算机视觉和机器学习软件库OpenCV的构建旨在为计算机视觉应用程序提供通用的基础结构,并加速在商业产品中使用机器感知。作为BSD许可的产品,OpenCV使企业可以轻松地使用和修改代码。我们需要安装此库,以便可以在程序中使用它。为了使OpenCV正常工作,我们也必须安装numpy库。我们可以使用pip python库管理器将它们安装在一行中:

pip install numpy opencv-python

安装完成后,让我们将它们导入我们的代码编辑器。对于这个项目,我们将使用Jupyter NotebookOpenCV导入为cv2,如下所示:

import cv2

现在,我们开始进行两幅图像的融合吧。下一步将详细介绍此过程。

04. 步骤1 —图像导入

我们可以尝试多种不同图像组合。比如可以将两张不同的图片或文本图像与图像组合在一起,或将彩色背景与图像组合在一起。我将把文本图像与漂亮的背景图像混合在一起。让我们先来看看这两个图像:

好吧,现在让我们将它们导入我们的程序中。我创建了一个文件夹,并将其重命名为images。它与Jupyter笔记本文件位于同一文件夹中。

bg = cv2.imread('images/background.jpg', cv2.IMREAD_COLOR) fg = cv2.imread('images/foreground.png', cv2.IMREAD_COLOR)
05. 第2步-调整图像大小

在此步骤中,我们将调整要混合的图像的大小。此步骤也可以称为预处理图像。我们先调整图像大小,以确保它们的尺寸相同。要使融合能够正常进行,需要使用相同的大小图像。否则,它将返回错误消息。在调整大小之前,让我向您展示它们的原始大小:

如您所见,背景图像为853到1280像素。前景图像为1440至2560像素。我们将使用OpenCV的调整大小功能调整它们的大小。

dim = (1200, 800) resized_bg = cv2.resize(bg, dim, interpolation = cv2.INTER_AREA) resized_fg = cv2.resize(fg, dim, interpolation = cv2.INTER_AREA)

现在,我们的图像尺寸相同。我们可以进行下一步,开始融合过程。

06. 步骤3 —混合图像

有了OpenCV,我们可以用一行代码来完成这项工作。将为我们完成混合的功能称为addWeighted。它有5个参数,可以列出为:图像源1,src1权重,图像源2,src2权重,伽玛。每个图像的权重值必须小于1。这是混合方程式:

blend = (image scr1)*(src1 weight) + (image scr2)*(src2 weight) + gamma

这是函数的数学原理。让我们看看实际情况:

blend = cv2.addWeighted(resized_bg, 0.5, resized_fg, 0.8, 0.0)

我们给前景加了一些权重。这样,背景将更暗,文本将更亮。到目前为止一切顺利,混合完成。现在,我们导出我们的最终作品。

07. 最后一步-导出结果

现在,让我们使用imwrite方法导出最终作品。这是将图像另存为文件夹中的新图像文件的行。

cv2.imwrite('blended.png', blend)

该程序最后完成了两个不同图像的融合。现在,大家应该已经对在实际项目中如何使用OpenCV(开源计算机视觉)库有了一些了解。

下载1:OpenCV-Contrib扩展模块中文版教程
(0)

相关推荐

  • 【推荐】Python图像处理工具有哪些?

    对比其他编程语言,Python更适合图像处理,因为Python有好多工具包应用于图像处理当中,既能提高效率,也能节省时间.那么Python图像处理工具有哪些?本文为大家介绍10个Python图像处理工 ...

  • 【完结】听完这12次分享,你应该完成了AI小白的蜕变

    专栏<AI白身境>正式完结了,在这一个专题中,我们给大家从Linux的基本知识,讲到了深度学习中必备的数学基础,从基本工具VIM和编译命令,讲到了常用的库OpenCV,从AI在工业界的各个 ...

  • python+opencv图像处理(二十二)

    中值滤波 中值滤波是比较常用的一种图像平滑处理方法. 其基本思路是通过滤波器遍历图像,取滤波器区域像素值中值为新的像素值. 表示为数学表达式如下: 其中,f(x,y)和g(x,y)分别是原图像和处理后 ...

  • Opencv实践

    Opencv实践 前言 一.安装库 二.基本操作 三.问题解决 结束语 前言  最近项目需要对图像进行一些预处理,想起了opencv这个好工具,话不多说,直接上笔记! 一.安装库 1.网上查找代码会看 ...

  • [Python图像处理] 八.图像腐蚀与图像膨胀

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  • Python图像处理工具有哪些?五大工具推荐!

    使用Python进行图像处理的时候,肯定避免不了工具,今天小编向大家推荐五款Python图像处理工具,有需求的小伙伴快来看看吧. 1 scikit-image 是一个开源的Python包,适用于num ...

  • opencv-开源计算机视觉python库

    OpenCV(开源计算机视觉库:opencv.org)是一个开放源代码库,其中包含数百种计算机视觉算法.该文档介绍了所谓的OpenCV 2.x API,与基于C的OpenCV 1.x API相比,它实 ...

  • 2021年将主导Python的7大图像处理库

    有没有想过Python的哪个图像处理库将在2021年占据主导地位? 图像在提供关键信息方面起着重要作用.对于企业而言,图像和视频是重要的数据来源. 这就是原因,对于企业而言,有效地翻译和处理图像并获得 ...

  • 使用OpenCV Python进行人脸识别

    先决条件 对图像分类的基本理解 Python 和深度学习知识 对深度学习中各种模块的概念理解 介绍 在这篇文章中,我们将看看什么是人脸识别?以及它与人脸检测有何不同? 我们先简单了解一下人脸识别的原理 ...

  • 如何转换opencv的图片格式在pytorch中使用

    首先,如上图所示,opencv读入的图像为 RGB格式,但是我们在pytorch中进行图像处理时,要先将RGB转换成BGR,然后在使用img = Image.fromarray(np.uint8(se ...