Coherence-Enhancing Shock Filters(附源码)
From:http://blog.csdn.net/bluecol/article/details/49924739
引言
这篇博客是基于对Joachim Weickert的文章《Coherence-Enhancing Shock Filters》的实现。但是我并没有阅读原文,参考了OpenCV的python源码改写而成。嗯,我真是一个勤劳的代码翻译工。
python源码可以在OpenCV 300里面的目录
XXX(OpenCV的安装目录)\sources\samples\python2\coherence.py
先来看一下效果,
代码
Python代码
Coherence-enhancing filtering example ===================================== inspired by Joachim Weickert "Coherence-Enhancing Shock Filters" http://www.mia.uni-saarland.de/Publications/weickert-dagm03.pdf import numpy as np def coherence_filter(img, sigma = 11, str_sigma = 11, blend = 0.5, iter_n = 4): for i in xrange(iter_n): gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) gxx = cv2.Sobel(gray, cv2.CV_32F, 2, 0, ksize=sigma) ero = cv2.erode(img, None) if __name__ == '__main__': src = cv2.imread(fn) def nothing(*argv): def update(): cv2.namedWindow('control', 0) print 'Press SPACE to update the image\n' cv2.imshow('src', src) |
C++代码
/* ============================================== * Coherence-Enhancing Shock Filters * Author:WinCoder@qq.com * inspired by * Joachim Weickert "Coherence-Enhancing Shock Filters" * http://www.mia.uni-saarland.de/Publications/weickert-dagm03.pdf * * Paras: * @img : input image ranging value from 0 to 255. * @sigma : sobel kernel size. * @str_sigma : neighborhood size,see detail in reference[2] * @belnd : blending coefficient.default value 0.5. * @iter : number of iteration. * * Example: * Mat dst = CoherenceFilter(I,11,11,0.5,4); * imshow("shock filter",dst); */ Mat CoherenceFilter(Mat img,int sigma, int str_sigma, float blend, int iter) { Mat I = img.clone(); int height = I.rows; int width = I.cols; for(int i = 0;i <iter; i++) vector<Mat> vec; Mat x,y; Mat gxx,gxy,gyy; Mat ero; Mat img1 = ero; |
效果
整体效果看起来有一种艺术动漫效果风格。调节各种参数,自行体会。
可执行程序下载
新浪网盘点此下载
CSDN资源下载
参考文献
Coherence-Enhancing Shock Filters,Joachim Weickert
OpenCV官方文档
转载请保留以下信息
作者 | 日期 | 联系方式 |
---|---|---|
风吹夏天 | 2015年11月19日 | wincoder@qq.com |
Coherence-Enhancing Shock Filters(附源码)相关推荐
- Vue模仿todo超详细讲解(附源码)
Vue模仿todo超详细讲解(附源码) 一.todo基本DOM结构 二.todo功能需求分析 1.新增任务 2.点击变成完成状态 3.点击删除 4.双击进入编辑以及修改保存 5.底部的状态筛选 6.l ...
- C#共享内存实例 附源码
原文 C#共享内存实例 附源码 网上有C#共享内存类,不过功能太简单了,并且写内存每次都从开头写.故对此进行了改进,并做了个小例子,供需要的人参考. 主要改进点: 通过利用共享内存的一部分空间(以下称 ...
- java中batch基础_详解Spring batch 入门学习教程(附源码)
详解Spring batch 入门学习教程(附源码) 发布时间:2020-09-08 00:28:40 来源:脚本之家 阅读:99 作者:achuo Spring batch 是一个开源的批处理框架. ...
- 炫酷,SpringBoot+Echarts实现用户访问地图可视化(附源码)
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 SpringBoot+Echarts用户访问地图可视化 意义 在常 ...
- C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码...
原文:C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github. ...
- 黯然微信小程序杂记(三):微信小程序实现倒计时功能 附讲解教学 附源码
黯然微信小程序杂记(三):微信小程序实现倒计时功能 附超详细注释 附源码 一.功能描述 二.界面展示 三.test.wxml代码 四.test.js代码(注释很详细 很易懂) CSDN私信我,有关微信 ...
- 黯然微信小程序杂记(二):小程序最新版登录并进行缓存模块的实现 附源码
黯然微信小程序杂记(二):小程序最新版登录进行缓存模块的实现 附源码 一.功能描述 二.mine.wxml界面图片 三.mine.wxml代码 四.mine.wxss代码 五.mine.js代码 六. ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码]...
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码] 文件上传这东西说到底有时候很痛,原来的asp.net服务器 ...
- 通用权限管理系统组件 中集成多个子系统的单点登录(网站入口方式)附源码
通用权限管理系统组件 (GPM - General Permissions Manager) 中集成多个子系统的单点登录(网站入口方式)附源码 上文中实现了直接连接数据库的方式,通过配置文件,自定义的 ...
- 2款不同样式的CSS3 Loading加载动画 附源码
原文:2款不同样式的CSS3 Loading加载动画 附源码 我们经常看到的Loading加载很多都是转圈圈的那种,今天我们来换一种有创意的CSS3 Loading加载动画,一种是声波形状的动画,另一 ...
最新文章
- 《神经元》发表脑智卓越中心关于灵活分类决策神经环路机制的研究成果
- DirectShow学习
- python 编程之计算器
- python的运算顺序和c一样吗,【Python】Python 对比 C语言的差异
- 常见前端数据格式转换
- “约见”面试官系列之常见面试题之第六十篇之事件绑定和普通事件(建议收藏)
- 模拟数据集上训练神经网络,网络解决二分类问题练习
- mysql.data已拥有为,MYSQL LOAD DATA INFILE忽略重复行(自动增量作为主键)
- Nexus下载、安装与使用
- 全息投影技术及其实现(附素材下载)
- JAVA 面试 知识点整理
- Skin Pack Auto UXThemePatcher-Win8 UXTheme桌面主题破解补丁
- ios微信组件跳转_IOS如何从微信中跳转APP
- 电脑打印机老是文档挂起无法打印怎么办
- 漫谈程序员系列:怎样成为技术达人
- php-fpm端口占用无法启动
- Kibana:Kibana Query Language - KQL
- LCD(一) TFT液晶时序图
- 网站广告怎样做效果最好?
- Broadcast详解
热门文章
- CentOS 搭建svn服务器
- leetcode算法题--剪绳子
- python变量初始化的位置不当、程序结果可能会出现问题_解决tensorflow由于未初始化变量而导致的错误问题...
- LOJ 3094 「BJOI2019」删数——角标偏移的线段树
- Python的DataFrame多个条件过滤错误
- Linux 用户被差别对待?无法通过 apple.com 管理 Apple ID
- tp3.2 连接两个数据库
- 实现不同vlan间PC不可互访,而不同vlan的PC均可访问服务器的特殊效果,(华为)...
- JavaEE基本了解
- 【7】nagios从零学习使用 - nrpe插件使用