OpenCV2学习笔记(十四):基于OpenCV卡通图片处理zfyouxi

本节全部的算法均由类cartoon中的函数cartoonTransform()来实现:

//Frame:输入每一帧图像output:输出图像cartoonTransform(cv::Mat&Frame,cv::Mat&output)兴许将使用很多其它的OpenCV技巧实现很多其它功能,并将该应用移植到Android系统上。

一、使用OpenCV訪问摄像头

OpenCV提供了一个简便易用的框架以提取视频文件和USB摄像头中的图像帧。假设你仅仅是想读取某个视频,你仅仅须要创建一个cv::VideoCapture实例,然后在循环中提取每一帧。这里须要訪问摄像头,因此须要创建一个cv::VideoCapture对象,简单调用对象的open()方法。这里訪问摄像头的函数例如以下,首先在Qt中创建控制台项目。在main函数中加入:

intcameraNumber=0;//设定摄像头编号为0if(argc>1)cameraNumber=atoi(argv[1]);//开启摄像头cv::VideoCapturecamera;camera.open(cameraNumber);if(!camera.isOpened()){qDebug()<<"Error:Couldnotopenthecamera.";exit(1);}//调整摄像头的输出分辨率camera.set(CV_CAP_PROP_FRAME_WIDTH,640);camera.set(CV_CAP_PROP_FRAME_HEIGHT,480);在摄像头被初始化后,能够使用C++流运算符将cv::VideoCapture对象转换成cv::Mat对象,这样能够获取视频的每一帧图像。

二、将帧图像转换为素描效果图片

要将一幅图像转换为素描效果图,能够使用不同的边缘检測算法实现。如经常使用的基于Sobel、Canny、Robert、Prewitt、Laplacian等算子的滤波器均能够实现这一操作,但处理效果各异。

1.Sobel算子:边缘检測中最经常使用的一种方法,在技术上它是以离散型的差分算子,用来运算图像亮度函数的梯度的近似值,缺点是Sobel算子并没有将图像的主题与背景严格地区分开来,换言之就是Sobel算子并没有基于图像灰度进行处理,因为Sobel算子并没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人惬意。

2.Robert算子:依据任一相互垂直方向上的差分都用来预计梯度。Robert算子採用对角方向相邻像素之差。

3.Prewitt算子:该算子与Sobel算子相似。仅仅是权值有所变化,但两者实现起来功能还是有差距的,据经验得知Sobel要比Prewitt更能准确检測图像边缘。

4.Laplacian算子:该算子是一种二阶微分算子,若仅仅考虑边缘点的位置而不考虑周围的灰度差时可用该算子进行检測。

对于阶跃状边缘。其二阶导数在边缘点出现零交叉,并且边缘点两旁的像素的二阶导数异号。

5.Canny算子:该算子的基本性能比前面几种要好。可是相对来说算法复杂。

Canny算子是一个具有滤波。增强,检測的多阶段的优化算子。在进行处理前。Canny算子先利用高斯平滑滤波器来平滑图像以除去噪声,Canny切割算法採用一阶偏导的有限差分来计算梯度幅值和方向,在处理过程中。Canny算子还将经过一个非极大值抑制的过程。最后Canny算子还採用两个阈值来连接边缘。

相比Sobel等其它算子。Canny和Laplacian算子能得到更清晰的素描效果,而Laplacian的噪声抑制要优于Canny边缘检測,而其实素描边缘在不同帧之间经常有剧烈的变化,因此我们选择Laplacian边缘滤波器进行图像处理。

一般在进行Laplacian检測之前,须要对图像进行的预操作有:

voidcartoon::cartoonTransform(cv::Mat&Frame,cv::Mat&output){cv::MatgrayImage;cv::cvtColor(Frame,grayImage,CV_BGR2GRAY);//设置中值滤波器參数cv::medianBlur(grayImage,grayImage,7);//Laplacian边缘检測cv::Matedge;//用于存放边缘检測输出结果cv::Laplacian(grayImage,edge,CV_8U,5);//对边缘检測结果进行二值化cv::MatBinaryzation;//用于存放二值化输出结果cv::threshold(edge,Binaryzation,80,255,cv::THRESH_BINARY_INV);}生成的素描效果:

三、将图像卡通化

在项目中调用一些运算量大的算法时,通常须要考虑到效率问题,比方这里将要用到的双边滤波器。

这里我们利用双边滤波器的平滑区域及保持边缘锐化的特性,将其运用到卡通图片效果生成中。

而考虑到双边滤波器执行效率较低,因此考虑在更低的分辨率中使用,这对效果影响不大,可是执行速度大大加快。

这里使用的策略是将要处理的图像的宽度和高度缩小为原来的1/2。经过双边滤波器处理后,再将其恢复为原来的尺寸。在函数cartoonTransform()中加入下面代码:

//採用双边滤波器//因为算法复杂,因此需降低图像尺寸cv::Sizesize=Frame.size();cv::SizereduceSize;reduceSize.width=size.width/2;reduceSize.height=size.height/2;cv::MatreduceImage=cv::Mat(reduceSize,CV_8UC3);cv::resize(Frame,reduceImage,reduceSize);//双边滤波器实现过程cv::Mattmp=cv::Mat(reduceSize,CV_8UC3);intrepetitions=7;for(inti=0;i

cv::Matdst;dst.setTo(0);magnifyImage.copyTo(dst,Binaryzation);//output=dst;//输出卡通效果,阈值各方面有待优化:

四、简单地生成“怪物”形象

这里是结合了边缘滤波器和中值滤波器的还有一个小应用。即通过小的边缘滤波器找到图像中的各处边缘。之后使用中值滤波器来合并这些边缘。具体实现过程例如以下:

具体代码例如以下,相同在函数cartoonTransform()中加入:

//怪物模式cv::Matgray,maskMonster;cv::cvtColor(Frame,gray,CV_BGR2GRAY);//先对输入帧进行中值滤波cv::medianBlur(gray,gray,7);//Scharr滤波器cv::Matedge1,edge2;cv::Scharr(gray,edge1,CV_8U,1,0);cv::Scharr(gray,edge2,CV_8U,1,0,-1);edge1+=edge2;//合并x和y方向的边缘cv::threshold(edge1,maskMonster,12,255,cv::THRESH_BINARY_INV);cv::medianBlur(maskMonster,maskMonster,3);output=maskMonster;//输出

五、人脸肤色变换

皮肤检測算法有非常多种,比方基于RGBcolorspace、Ycrcb之cr分量+otsu阈值化、基于混合模型的复杂机器学习算法等。

因为这里仅仅是一个轻量级的应用,因此不考虑使用太复杂的算法。

考虑到未来要将这些图像处理算法移植到安卓上,而移动设备上的微型摄像头传感器对颜色的反应往往差异非常大,并且要在没有标定的情况下对不同肤色的人进行皮肤检測,因此对算法的鲁棒性要求较高。

这里使用了一个技巧,即在图像中规定一个区域,用户须要将脸部放到指定区域中来确定人脸在图像中的位置(其实有些手机应用也会採取这样的方法),对于移动设备来说这不是一件难事。

因此,我们须要规定人脸的区域,相同在函数cartoonTransform()中加入下面代码:

皮肤变色器的实现基于OpenCV的floodFill()函数,该函数相似于一些画图软件中的颜料桶(颜色填充)工具。因为规定屏幕中间椭圆区域就是皮肤像素,因此仅仅须要对该区域的像素进行各种颜色的漫水填充就可以。

这里处理的图像是彩色图,而对于RGB格式的图像,改变颜色的效果不会太好,因为改变颜色须要脸部图像的亮度变化,而皮肤颜色也不能变化太大。这里使用YCrCb颜色空间来进行处理。在YCrCb颜色空间中,能够直接获得亮度值,并且通常的皮肤颜色取值唯一。

脸部不在识别区域内时:

脸部进入识别区域内时:

以上实现了几种图片卡通化效果,接着在学有余力时要对各种算法的效果进行优化。同一时候加入GUI界面,并将应用移植到移动设备上。

參考资料:《深入理解OpenCV:有用计算机视觉项目解析》

完整代码:

cartoon.h:

#ifndefCARTOON_H#defineCARTOON_H#include#include#includeclasscartoon{public:voidcartoonTransform(cv::Mat&Frame,cv::Mat&output);};#endif//CARTOON_H

THE END
1.卡通科学实验素材卡通科学实验图片素材下载做科学实验在实验室工作的女性卡通 紫色渐变科学实验医疗插画展板背景 蓝色小清新卡通科学实验展板背景 卡通幼儿园科学推理实验校园文化校园文化墙 做科学实验拿着烧瓶的科学家卡通 卡通可爱科技科学小报手抄报模板Word版 PS版 卡通化学城市 白色卡通化学医疗研究科学实验背景图片 https://www.51miz.com/so-sucai/1568581.html
2.讨论图片卡通可爱下载讨论图片高清头像大全熊猫办公精心为用户挑选80张高清精美讨论图片、支持专业级讨论设计素材下载,更多风格的讨论,免抠元素,卡通手绘素材图片、图标图案、免抠矢量图,尽在熊猫办公。https://www.tukuppt.com/speciall/taolun9478.html
3.AI创作图做实验卡通科研人物素材实验卡通形象化学实验室文化科研做实验卡通 科研人物素材 实验卡通形象 化学实验室文化 科研部门卡通形象 实验室素材 q版手绘女博士 化学实验意义 科学家卡通形象 实验室化验员 儿童科学实验 化学实验室规则 小科学家卡通形象设计 相关图片 更多> 他的图片 商用正版 更多> 关于昵图 昵图简介 网站声明 网站公约 汇图网 版权声明 联系我们 常见https://www.nipic.com/show/49000270.html
4.研究图片图片研究图片图片素材免费下载千库网为设计者提供研究图片素材大全,为您省却研究图片图片素材搜索时间,这里有海量研究图片素材图片供您下载使用,本次搜索千库网为您找到10000张素材https://588ku.com/image/13058650.html
5.创新研究图片创新研究设计素材红动中国素材网提供368个创新研究图片、创新研究素材、创新研究背景、创新研究模板、创新研究海报等PS素材下载,包含PSD、AI、PNG、JPG、CDR等格式源文件素材,更多精品创新研究设计素材下载,就来红动中国,最后更新于2024-11-24 00:15:33。https://so.redocn.com/chuangxin/b4b4d0c2d1d0bebf.htm
6.成人漫画漫画入口:小学数学教研美篇优秀匈牙利出现首个新冠肺炎死亡病例 系一名75岁老人 7936 2024-11-21 16:59:42 水陆两栖飞机AG600完成海上首飞 4487 2024-11-27 03:45:40 全国港澳研究会在澳门举办2021年年会学术研讨会 8381 2024-11-20 13:14:25 海关总署:3月当月我国进出口出现回升 7878 2024-11-21 10:46:24 游戏https://gaoloumi.cc/forum.php?mod=viewthread&tid=85824883
7.卡通研究生图片卡通研究生素材图片大全智能精选为您提供丰富的卡通研究生图片素材,卡通研究生动漫,卡通研究生图片素材下载。助力您对于卡通研究生动漫的创意设计灵感,充实饱满作品,查找更多动漫作品选择摄图网下载https://m.699pic.com/image/katongyanjiusheng.html
8.萌绘文化中的卡通画图片大全可爱之美与儿童心理发展的探究萌绘文化中的卡通画图片大全:可爱之美与儿童心理发展的探究 在当今社会,卡通画图片大全作为一种流行的娱乐形式,对于尤其是儿童而言,它们不仅是一种视觉上的享受,更是一个心灵的慰藉。这些“可爱萌”的图像,常常以其独特的魅力吸引着人们的心目中,那些无忧无虑、充满https://www.qhtnubrib.cn/wen-hou/567055.html
9.加强版CycleGAN!贾佳亚等提出卡通图与真实人脸转换模型,看女神突破次真实和卡通人脸的结构属于两个不同的领域,外观相差很大。如果没有明确的对应关系,很难捕捉基本面部特征,并生成高质量卡通图片。 为了解决这个问题,研究人员提出了Landmark Assisted CycleGAN,它利用面部标志特征来定义一致性损失,指导在CycleGAN中训练局部鉴别器。 https://blog.csdn.net/QbitAI/article/details/95551343
10.探究高清可爱图片大全中的视觉艺术与情感表达在当今信息爆炸的时代,互联网上充斥着各种各样的图片资源。特别是那些高清可爱图片大全,它们以其清晰细腻的画面和深邃的情感触动着无数人的心弦。在这篇文章中,我们将探讨这些高清可爱图片大全背后隐藏的视觉艺术秘密,以及它们如何通过情感表达与观众产生共鸣。 https://www.onxw269k.com/ka-tong/290873.html
11.卡通图片,高清卡通图片大全,第2页菜鸟图库-高清图片素材下载网,提供海量免费卡通图片素材,广告设计背景图片库,唯美图片素材,高清图片库,唯美背景图片库,海报设计图片素材图库等设计素材共享和免费下载。https://www.sucai999.com/pic/cate/449_509.html?page=2
12.漫画读书卡通阅读图片漫画读书卡通阅读素材视觉中国为您找到9280个原创漫画读书卡通阅读素材图片,包括漫画读书卡通阅读图片,漫画读书卡通阅读插画,漫画读书卡通阅读模板,漫画读书卡通阅读元素,漫画读书卡通阅读图标等源文件下载服务,包含PSD、PNG、JPG、AI、CDR等格式素材,更多关于漫画读书卡通阅读素材、图片https://www.vcg.com/creative-image/135323726
13.异性交往心理降活动课教案9篇(全文)1、看到卡通图片的感觉? 2、看到真人情景的感觉? 3、为什么会有这样的感觉? 4、你怎么看待中学生交往过密这种现象?(追问)导入正题 辅导活动过程: 一、案例引入:“爱的初体验” (内容:中学生交往过密的原因;怎样看待中学生交往过密;当“我”对异性或异性对“我”有好感时,怎样做) https://www.99xueshu.com/w/filexifx1hiw.html
14.七张可爱卡通PPT背景图片七张可爱卡通PPT背景图片 下载地址: ==> 本地下载列表 <== ==> 夸克网盘下载 <== 试一下AI自动生成PPT? 本站素材仅供学习研究使用,请勿用于商业用途。未经允许,禁止转载。 与“七张可爱卡通PPT背景图片”相关下载:https://www.1ppt.com/article/56468.html
15.卡通壁纸图片大全各种款式儿童房壁纸产品图欣赏15图→买购网图片1:飞彩儿童身高墙贴客厅3d立体量身高墙纸 宝宝可移除卡通长颈鹿测量仪尺 去看看> 图片2:身高尺墙贴磁吸3d立体量身高墙纸 儿童房间装饰宝宝卡通测量仪记录 去看看> 图片3:3D立体家用儿童房卡通身高墙贴 宝宝身高尺可移除测量仪尺身高贴纸 去看看> 图片4:贴画动物墙贴纸早教墙上卡通图片婴儿童房宝宝小图案墙壁https://m.maigoo.com/tuku/517960.html
16.阿里腾讯等8家中国互联网大厂的50款大模型及应用,能否全面超越在基础文生图功能中,可根据用户提示词生成水彩、扁平插画、二次元、油画、3D卡通画等风格图像;相似图片生成功能中,用户上传任意图片后,即可进行创意发散,生成内容、风格相似的AI画作。此外该模型还支持图像风格迁移,用户上传原图和风格图,可自动把原图处理为指定的风格图。http://www.bianews.com/news/details?id=181241
17.科学考察漫画图片科学考察漫画素材科学考察漫画模板免费下载六图网为您提供410张科学考察漫画设计作品免费下载服务,您还可以找到科学考察漫画图片、科学考察漫画素材、科学考察漫画模板等设计素材,我们为您提供科学考察漫画图片下载,科学考察漫画模板下载、科学考察漫画素材下载等服务!https://m.16pic.com/sucai/4289639.html?from=singlemessage