IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于QT的opencv照片美颜及背景更换 -> 正文阅读

[人工智能]基于QT的opencv照片美颜及背景更换

基于QT的opencv照片美颜及背景更换

项目地址:QT美颜系统

一、软件架构

  • qt2.9.3
  • opencv3.4.16

二、安装教程

1、将opencv源文件中的cmake文件在qt中打开,通过camke编译出qt可用的库文件,这个建议可以去看一下网上的教程;如果嫌麻烦可以直接使用本项目中编译好的库文件,但请注意你的qt版本是否和和我保持一致,如果不一致,可能会出现一些错误!

2、将opencv库文件的路径添加到qt项目中的pro文件中,注意换成你的路径,该文件为项目中opencv编译后的库文件,注意qt所有路径操作,最好不要有中文路径,否则可能会报错

INCLUDEPATH +=D:\opencv3.4.16\opencv\build-sources-Desktop_Qt_5_9_3_MinGW_32bit-Default\install\include
LIBS +=D:\opencv3.4.16\opencv\build-sources-Desktop_Qt_5_9_3_MinGW_32bit-Default\install\x64\mingw\lib\libopencv_*.a

在这里插入图片描述

3、在运行QT项目后,可能会出现程序直接停止,不能运行的现象,这可能是dll文件不存在的错误,打开opencv的库文件的dll文件,复制到你编译项目的debug文件,如下图所示:

在这里插入图片描述

三、效果展示

程序UI

在这里插入图片描述

效果演示

在这里插入图片描述

如上图六所示,因为原图的一些RGB值的不同,换背景对于一些照片中RGB近似的地方,处理效果不好,后期需要改进;但对于照片颜色差距大的照片,换背景可以完成,如图五。

四、文件介绍

  • build-Profile_picture-Desktop_Qt_5_9_3_MinGW_32bit-Debug:项目构建编译后的文件,可直接运行程序,但记得把opencv库文件添加进去,并且在pro文件中修改路径
  • opecv库文件:在qt中通过camke编译后的文件,用于项目使用opencv库函数
  • Profile_picture:项目的源文件,可以直接在该项目中进行二次修改
  • README.assets:readme图片存放文件

五、开发过程

1、通过QFileDialog选择图片,获得图片,同时转换读取图片的格式,因为opencv加载的是string类型的图片,而通过QFileDialog插入的图片是QStringe类型;最后将图片展示在QLabel上。

2、通过MatToImage()函数获取图片的类型,是单通道、三通道、四通道,并返回一个QImage类型,方便对图片进行操作。

3、通过whiteFace()函数进行亮度和对比度操作,通过三个for循环,获取每一个像素点的值,一个像素点,三通道分别对应3个值,对每一个值在0-255的数量上进行条件调节,涉及一个调节公式:g(x) = alpha * f(x) + beta;其中beta代表要调节的参数。

4、通过on_exfoliating_clicked()函数对图片进行磨皮处理,通过双边滤波和高斯滤波处理,用高斯滤波主要是考虑到双边滤波过后,图像可能会模糊,通过高斯滤波使图像增强。

5、通过on_change_background_clicked()函数,对图片进行换背景操作,主要涉及技术:K-Means,图像分割,背景融合-高斯模糊,遮罩生成;过程:数据组装,KMeans分割,背景去除,遮罩生成,遮罩模糊,通道混合输出;这个主要看网上的一些教程,本人目前没理解太透,大家可以去网上看一看

以上涉及各个函数,可以查看源码中的具体操作

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:12:01  更:2022-09-04 01:15:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 19:52:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计