卡通画(矢量风格画)特效生成算法
void* ImageVectorStylizationThread(void *arg)
{VectorStylizationInfo *vecstylization_info = (VectorStylizationInfo *)arg;BMPINFO *pSrcBitmap = vecstylization_info->pSrcBitmap;int style_index = vecstylization_info->style_index;int color_index = vecstylization_info->color_index;int thread_id = vecstylization_info->thread_id;int width = pSrcBitmap->lWidth;int height= pSrcBitmap->lHeight;int size = width*height;int mem_size = size * sizeof(float);float *rdata = (float *)malloc(mem_size);float *gdata = (float *)malloc(mem_size);float *bdata = (float *)malloc(mem_size);float *ydata = (float *)malloc(mem_size);float *udata = (float *)malloc(mem_size);float *vdata = (float *)malloc(mem_size);// 数据转换ConvertToFloat(pSrcBitmap, rdata, gdata, bdata);// rgb转yuvfor (int i = 0; i < size; i++){Rgb2Yuv(rdata[i], gdata[i], bdata[i], &ydata[i], &udata[i], &vdata[i]);}// 抽取边缘float *edgedata = (float *)malloc(mem_size);ExtractEdge(ydata, edgedata, width, height, 15.7f, 0.017f, 105.5f);// 计算矢量场float *vec_x = (float *)malloc(size * sizeof(float));float *vec_y = (float *)malloc(size * sizeof(float));CalcVectorField(ydata, width, height, vec_x, vec_y, 1.5f);// 线积分卷积LICFilter(edgedata, ydata, vec_x, vec_y, width, height);free(vec_x);free(vec_y);vec_x = NULL;vec_y = NULL;free(edgedata);edgedata = NULL;// 输出结果switch (style_index){case 0:// 黑白memcpy(rdata, ydata, mem_size);memcpy(gdata, ydata, mem_size);memcpy(bdata, ydata, mem_size);ConvertToUchar(rdata, gdata, bdata, pSrcBitmap);ImageBlend(pSrcBitmap, 0, 0);break;case 1:// 单彩memcpy(rdata, ydata, mem_size);memcpy(gdata, ydata, mem_size);memcpy(bdata, ydata, mem_size);ConvertToUchar(rdata, gdata, bdata, pSrcBitmap);ImageBlend(pSrcBitmap, 0, 0);ImageBlend(pSrcBitmap, 1, color_index);break;case 2:// 多彩for (int i = 0; i < size; i++){Yuv2Rgb(ydata[i], udata[i], vdata[i], &rdata[i], &gdata[i], &bdata[i]);}ConvertToUchar(rdata, gdata, bdata, pSrcBitmap);ImageAdjust(pSrcBitmap);break;default:break;}free(ydata);free(udata);free(vdata);ydata = NULL;udata = NULL;vdata = NULL;free(rdata);free(gdata);free(bdata);rdata = NULL;gdata = NULL;bdata = NULL;return NULL;
}
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
卡通画(矢量风格画)特效生成算法相关推荐
- 基于L0范数平滑的图像漫画特效生成算法
图像漫画特效算法,主要思路可以分两部分,第一,简化图像,即去除图像细节,仅保留图像主要信息,第二,生成合适的边缘线条,最后将两者合成即可,合成其实就是将两者简单一乘即可.在简化图像步骤, ...
- 图像处理之水彩画特效生成算法
在研究非真实感绘制相关算法时,水彩画算法是第一个开始看的,不过却拖到最后总结.水彩画还是挺不好模拟的,里面涉及的算法比较多,本文实现的水彩画算法主要参考下面两篇文章,<Intera ...
- matlab画梅花,基于Matlab图像素描生成算法究.doc
毕 业 文 图像素描生成算法研究 姓 名 院(系) 信息学院 专业班级 学 号 指导教师 职 称 论文答辩日期 年月日 摘 要 分析比较图像处理提供参考.关键词: 目 录 1 前言1 1.1 课题研究 ...
- 无需向量监督的矢量图生成算法,入选CVPR 2021 | 代码开源
说起图像生成算法,大家也许并不陌生. 不过,大多数算法都针对栅格图像,也就是位图,而不支持矢量图. 虽然也有一些生成矢量图形的算法,但是在监督训练中,又受限于矢量图数据集有限的质量和规模. 为此,来自 ...
- 开源 | CVPR 2021无需向量监督的矢量图生成算法
点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:量子位 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 说起 ...
- 这个开源项目绝绝子,一键生成好玩的矢量风格头像!
今天是开源项目推荐专题(这个专题终于更新了,勿催哈 :D 最近逛 GitHub,发现了一个非常好玩的开源项目--头像生成器,给大家分享一下~ 开源项目介绍 这是一款开源的矢量风格头像生成器,可以搭配不 ...
- 复现个有趣的算法:铅笔素描画自动生成
导 语 最近偶然翻到一篇来自港中文的paper,十分有意思,可以根据拍摄到的2D图像自动生成该图的铅笔素描画.随手复现了一下,在这里分享给大家.让我们愉快地开始吧~ 开发工具 Python版本:3.6 ...
- c语言计算机图形来画八分画圆,【计算机图形学】基本图形元素:圆的生成算法...
08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活.此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/de ...
- 绕线画算法python_一种绕线画自动生成及加工的方法和设备与流程
本发明涉及技术领域,具体涉及一种绕线画自动生成及加工的方法和设备. 背景技术: 绕线画又称钉子画,简而言之,就是在木板上钉上钉子,然后在钉子间绕线,做出大概的轮廓,然后用线在钉子之间缠绕,组成几何图形 ...
最新文章
- 常见挖矿 cpu 算力单位:EH/s 、PH/s、TH/s、Msol/s、Mgps、Kgps
- ios 性能优化(一)
- C/C++程序基础 (八)数据结构
- 生产系统支撑终端故障处理的三个误区
- springmvc+jsp引用本地图片文件
- golang 释放内存机制的探索
- Sharepoint2007个人网站不能同步域信息的处理方法
- VisualSVNServer的使用
- 抽取类的#技巧#成员变量最可能
- 【算法】二进制 与、或、异或运算
- 【elasticsearch】ES数据库重建索引 -- Reindex(数据迁移)
- 高级工计算机操作试题及答案,计算机系统操作高级工试题和答案[1]
- JavaScript定位页面元素属性(满满的干货)
- 交互设计—超越人机交互(第5版)
- 20大中国式弱点营销
- C 语言绝对值函数abs实现技巧
- python 钉钉发邮件报警设置
- Vant组件NavBar导航栏使用时去除下方白线问题
- 关于Java对接读卡器遇到的坑Process finished with exit code -1073740940 (0xC0000374)
- [ATPG]解读report_nonscan_cells -summary得到的report
热门文章
- 由ISBN自动获取书籍信息——下载可用
- 【Python公开课】零基础玩转Python:Python中的文件操作
- 共识游戏:特斯拉和软银谁更会打麻将?
- Acwing 2326:王者之剑(网格图之网络流 最大权独立集)
- 移印工艺流程及应用注意事项
- ThinkPad安装Windows XP系统BIOS配置
- 蓝叠模拟器Installation did not succeed. Installation failed due to: 'closed'
- JavaScript学习笔记_5 Map
- #软件技术 常用软件与资源网站
- 8.14 猪王争霸 2693