代码链接:图像的增强与合成

最近做了一个小实验,内容是图像的增强与合成,觉着挺有意思,记录一下。
首先效果是这样的:

利用Python和Opencv算法,实现下述功能:
1、 准备本人在纯色背景前的照片,并且要求背景颜色与皮肤、衣服的颜色区别较大。
2、 准备一张与上述人像图像大小相同的风景图片。(或者使用reshape)
3、 利用图像增强算法处理人像照片,以提升照片的品质。
4、 利用图像处理算法将步骤3得到的照片中背景部分置为黑色,人像部分保持不变。
5、 利用图像处理算法处理风景图片,使风景图片变得模糊,实现背景虚化。
6、 利用图像处理算法将步骤4得到的人像图像进行二值化处理,人像部分为0,背景部分为1。
7、 利用步骤6得到的二值图像将步骤5得到的风景图像中用于合成人像区域的像素置为黑色后,与步骤4得到的人像图像进行合成,实现人像迁移

在做这个实验的过程中,主要学到的一些知识有:

  1. 利用 [0,-1,0],[-1,5,-1],[0,-1,0] 这个卷积核可以实现图像的锐化,增加图像的清晰度,提升图片品质;
  2. 利用 kmeans (cv.kmeans)实现背景与人像的分割;
  3. 在对一个感兴趣区域做特殊处理时,掩膜可以起到很大的作用;
  4. 使用高斯滤波使边界模糊;

这里主要想记录opencv中kmeans的参数以及掩膜的作用:

1. cv.kmeans

# 定义终止标准 = ( type, max_iter = 10 , epsilon = 0.1 )  最大迭代次数与要求的精度
criteria=(cv.TERM_CRITERIA_EPS + cv.TERM_CRITERIA_MAX_ITER, 10, 0.1)
ret,label,center=cv.kmeans(points,clusternum,None,criteria,10,cv.KMEANS_PP_CENTERS)   # criteria:迭代终止条件

输入参数:
sample:它应该是np.float32数据类型,并且每个功能都应该放在单个列中。
nclusters(K):结束条件所需的簇数
criteria:这是迭代终止条件。满足此条件后,算法迭代将停止。实际上,它应该是3个参数的元组。它们是(type,max_iter,epsilon):

  1. 终止条件的类型。它具有3个标志,如下所示:
  • cv.TERM_CRITERIA_EPS-如果达到指定的精度epsilon,则停止算法迭代。
  • cv.TERM_CRITERIA_MAX_ITER-在指定的迭代次数max_iter之后停止算法。
  • cv.TERM_CRITERIA_EPS + cv.TERM_CRITERIA_MAX_ITER-当满足上述任何条件时,停止迭代。
  1. max_iter-一个整数,指定最大迭代次数。
  2. . epsilon-要求的精度 1. attempts:该标志用于指定使用不同的初始标签执行算法的次数。该算法返回产生最佳紧密度的标签。该紧凑性作为输出返回。 2. flags:此标志用于指定初始中心的获取方式。通常,为此使用两个标志:cv.KMEANS_PP_CENTERS和cv.KMEANS_RANDOM_CENTERS。

输出参数:

  • 紧凑度:它是每个点到其相应中心的平方距离的总和。
  • 标签:这是标签数组,其中每个元素标记为“0”,“ 1” …
  • 中心:这是群集中心的阵列。 现在,我们将通过三个示例了解如何应用K-Means算法。

2. 掩膜的作用

提取感兴趣区:用预先制作的感兴趣区掩膜与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0;

  1. 屏蔽作用:用掩膜对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计;
  2. 结构特征提取:用相似性变量或图像匹配方法检测和提取图像中与掩膜相似的结构特征;
  3. 特殊形状图像的制作

代码较长,我将链接放在下方:
代码链接:图像的增强与合成

opencv+python实现图像的增强与合成(人像迁移)相关推荐

  1. openCV—Python(6)—— 图像算数与逻辑运算

    openCV-Python(6)-- 图像算数与逻辑运算 一.函数简介 1.add-图像矩阵相加 函数原型:add(src1, src2, dst=None, mask=None, dtype=Non ...

  2. OpenCV python 提取图像内的三色

    OpenCV python 提取图像内的三色 原图 [opencv.jpg] import cv2 import numpy as npdef main():# 1.导入图片img_src = cv2 ...

  3. Python:图像数据增强和保存

    Python:图像数据增强和保存 code 参考博客链接:https://blog.csdn.net/qq_36756866/article/details/108255715 在进行模型分析处理的时 ...

  4. OpenCV+python:图像梯度

    1,图像梯度的概念 梯度简单来说就是求导,在图像上表现出来的就是提取图像的边缘(无论是横向的.纵向的.斜方向的等等),所需要的是一个核模板.模板的不同结果也不同.所以能够看到,全部的这些个算子函数,归 ...

  5. python opencv 图像切割_【OpenCV+Python】图像的基本操作与算术运算

    图像的基本操作 在上个教程中,我们介绍了使用鼠标画笔的功能.本次教程,我们将要谈及OpenCV图像处理的基本操作. 本次教程的所有操作基本上都和Numpy相关,而不是与OpenCV相关.要使用Open ...

  6. Opencv学习笔记——图像伪色彩增强

    以下均为github上opencv的个人学习笔记,原路径如下: https://github.com/JimmyHHua/opencv_tutorials 源码示例: import cv2 as cv ...

  7. OpenCV—Python PyLibTiff_psd 图像基本操作以及图像格式转换

    文章目录 一.图片 读.写.显示.属性查看 libtiff 包装器 Python 模块 opencv 模块 PIL 模块 直接修改图片格式 大(分辨率大)图片缩小 与上面代码同效 二.PSD图像读取与 ...

  8. OpenCV+python:图像金字塔

    1,图像金字塔的概念 图像金字塔是一种以多分辨率来解释图像的有效但概念简单的结构.应用于图像分割,机器视觉和图像压缩.一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图 ...

  9. OpenCV+python:图像二值化

    1,图像二值化概念及方法 一个像素点的颜色是由RGB三个值来表现的,所以一个像素点矩阵对应三个颜色向量矩阵,分别是R矩阵,G矩阵,B矩阵,它们也都是同样大小的矩阵. 在图像处理中,用RGB三个分量(R ...

最新文章

  1. 清北顶会学霸:“表情”与“认知”引发的科学思辨 | 清华AI Time PHD
  2. 【数据竞赛】2020年11月国内大数据竞赛信息-奖池5000万
  3. OpenCASCADE绘制测试线束:OCAF 命令之几何属性命令
  4. java在线教程_如何自学java-已拿阿里25k offer
  5. MFC中 给按钮添加图片的方法
  6. axios源码中的10多个工具函数,值得一学~
  7. 【实践驱动开发3-006】TI WL1835MODCOM8 在android的移植 - SDIO wifi驱动的注册步骤
  8. 加密算法使用(五):RSA使用全过程
  9. layui登录源码_基于springboot+thymeleaf+mysql+layui实现的论坛系统
  10. Docker教程小白实操入门(7)--基于Commit定制镜像
  11. xp无线网卡开启的服务器,无线网卡在 Windows XP 系统下的安装与使用过程
  12. 华为+android+root权限获取root,如何获得华为手机的root权限?华为root权限获取教程...
  13. 分治策略-股票获取最大收益-最大子数组问题
  14. 新版Burp Suite全模块详细使用篇<宝藏文> -- 小黑渗透工程栈(工具篇2)
  15. 改为dns服务器响应的原因,2020年dns服务器异常的原因及解决方法
  16. 玩游戏学编程,寓教于乐:12个学习编程的游戏化平台
  17. android 短信超链接,Android处理网页的短信链接
  18. c语言画板,简单的像素画板(C语言编写)
  19. MATLAB实现2ASK,2PSK,2FSK
  20. 推荐 9 个免费图片网站,我的存货都在这了

热门文章

  1. 线性代数(13): 特征值与特征向量
  2. 区块游戏游案例:奔跑吧兔子定制开发
  3. Halcon 算子 gen_contours_skeleton_xld
  4. 必备mysql技能(资料来自韩顺平哔哩哔哩)
  5. Springboot @Validated参数校验
  6. bzoj 1845 [Cqoi2005] 三角形面积并 扫描线+计算几何
  7. dapper调用oracle存储过程,.NET Core中使用Dapper操作Oracle存储过程最佳实践
  8. [Go] 开源客服系统以及多商户客服系统-GOFLY在线客服
  9. filemaker mysql_2014年从Filemaker导出到MySQL ......
  10. 重构博客园Android App