数字图像处理,图像锐化算法的C++实现
http://blog.csdn.net/ebowtang/article/details/38961399
之前一段我们提到的算法都是和平滑有关, 经过平滑算法之后, 图像锐度降低, 降低到一定程度, 就变成了模糊。 今天我们反其道行之, 我们看看锐化是怎么做的。 这里的锐化, 还是的从平滑谈开去。我们先来观察原来的图像和平滑图像的区别:
原图 raw:
模糊图 blur:
_________________________________________________________
源图像减去模糊图像等于 锐化后的边缘mask效果:
这个时候, 我们发现,减法做完的这个图赫然勾勒出了原图的边缘!! 这样给我们一个启示就是, 如果我们把这个mask加到原图上那岂不就是锐化了? (不明白? 锐化的意思就是边缘的色差比较大, 产生的图片貌似清晰的效果) 说干就干, 马上我们来做个新的算式:
老图 raw:
加上mask
_______________________________________________________
等于锐化图 sharpen
怎么样, 是不是有了锐化的效果了??所以我们实际上的锐化效果就是从这么简单的想法衍生出来的。 所以锐化的公式可以简单的表述为 sharp = raw + ( raw-blur ); 再来看看我们原来的高斯模版的话就是这样:
这样的话, 我们的锐化算法,也变得和之前的高斯平滑差不多了, 就是像素的加权平均值的计算就可以得到了。可以想见的事情是代码肯定也会出奇的一致! 这是那个template改掉了:
- void sharpenImage (unsigned char* gray, unsigned char* smooth, int width, int height)
- {
- int templates[25] = { -1, -4, -7, -4, -1,
- -4, -16, -26, -16, -4,
- -7, -26, 505, -26, -7,
- -4, -16, -26, -16, -4,
- -1, -4, -7, -4, -1 };
- memcpy ( smooth, gray, width*height*sizeof(unsigned char) );
- for (int j=2;j<height-2;j++)
- {
- for (int i=2;i<width-2;i++)
- {
- int sum = 0;
- int index = 0;
- for ( int m=j-2; m<j+3; m++)
- {
- for (int n=i-2; n<i+3; n++)
- {
- sum += gray [ m*width + n] * templates[index++] ;
- }
- }
- sum /= 273;
- if (sum > 255)
- sum = 255;
- if (sum <0)
- sum = 0;
- smooth [ j*width+i ] = sum;
- }
- }
- }
当然, 这个锐化算法或者说锐化的模板只是我根据前面的算式自己计算的来的,其实还是有非常主流的锐化模版可以供使用的, 比如说著名的拉普拉斯算子。
参考资源:
【1】http://blog.csdn.NET/hhygcy/article/details/4330939
数字图像处理,图像锐化算法的C++实现相关推荐
- matlab与数字图像处理--图像锐化imsharpen
在对图像进行锐化时,图像灰度变化之处将引入一段"过冲",和人眼视觉中的马赫带效应相同.可以理解图像锐化即是增强了人眼的马赫带效应. mat=zeros(300,500); mat( ...
- 数字图像处理课设图像的锐化_数字图像处理图像锐化处理.ppt
数字图像处理图像锐化处理 4.7.2 灰度级到彩色转换 灰度级到彩色转换(例) 在HSI彩色空间的直方图均衡强度均衡处理没有改变图像的色调和饱和度值,但它的确影响了整体图像的彩色感观. 向量分量可以用 ...
- 计算机图像进行滤波的函数,数字图像处理图像滤波.ppt
数字图像处理图像滤波 图像滤波 图像处理中所用到的图像往往含有噪声,需要用图像滤波的方法去除噪声. 内容框架 像素基础知识介绍 算术和逻辑运算 直方图 直方图均衡算法,用于图像锐化. 图像增强基本方法 ...
- 数字图像处理图像反转的实现_使用8086微处理器反转16位数字
数字图像处理图像反转的实现 Problem statement: 问题陈述: Write an assembly language program in 8086 microprocessor to ...
- 数字图像处理图像反转的实现_反转8位数字| 8085微处理器
数字图像处理图像反转的实现 Problem statement: 问题陈述: To reverse 8 bits number using 8085 microprocessors. 使用8085微处 ...
- 数字图像处理 - Ch3 锐化(高通)空间滤波器
数字图像处理 Ch3 锐化(高通)空间滤波器 锐化(高通)空间滤波器 1. 一阶导数和二阶导数 2. 利用二阶导数锐化图像 -- 拉普拉斯 3. 钝化掩蔽和高提升滤波 4. 使用一阶导数锐化图像 -- ...
- 使用FPGA实现的图像锐化算法(USM)设计
基于的图像锐化算法(USM)设计 最近研究了图像锐化方法,使用matlab模拟了效果并实现了基于FPGA的图像锐化算法,处理效果如图1.1.图1.2所示.经过算法处理后 上图右边为锐化算法处理后的结果 ...
- matlab 求其骨架,数字图像处理图像的骨架生成和提取(Matlab)三种方法
[实例简介] 数字图像处理图像的骨架生成和提取(Matlab),有三种方法,推荐给大家! [实例截图] [核心代码] Programe ├── Programe1 │ ├── 00.JPG │ ...
- Matlab数字图像处理——图像的空间变换
Matlab空间变换函数 imtransform Matlab空间变换函数 imtransform 可以实现图像仿射变换(如 平移.旋转.剪切.缩放).投影变换, 该函数可与 maketform 配合 ...
- c语言bmp图片拉普拉斯锐化,图像锐化算法(Image sharpening):拉普拉斯增强和Unsharp Masking(附代码)...
图像锐化算法(Image sharpening):拉普拉斯增强和Unsharp Masking(附代码) (y(m,n)=x(m,n)+lambda*z(m,n)) 其中(x(m,n))是处理前图片, ...
最新文章
- 特征工程之时间特征、自然语言特征、图像图像特征、数据分布不平衡
- 利用DHCP,http,tftp,pxe实现批量自动化部署系统
- 企业管理,难的是什么?
- saltstack之远程触发文件备份、回滚
- [Spring cloud 一步步实现广告系统] 13. 索引服务编码实现
- 神策数据受邀出席,携手亚马逊云科技共建智能家居新航海时代
- 【CV】CVPR2020丨SPSR:基于梯度指导的结构保留超分辨率方法
- 【Geek软技能】程序员,为什么写不好一份简历?
- SDOI 2006 - 保安站岗
- Future取消线程执行
- 电脑没有ps怎么改照片dpi_设计干货整理丨 平面设计师必知的打印常识与电脑性能...
- python读取数据库数据类型_从SQL数据库读取二进制数据(图像数据类型)并将其膨胀,Matlab vs.Python...
- 【原创】Bug管理操作规范个人经验总结
- [CodeForces 372A] Counting Kangaroos is Fun
- NYOJ - 整数划分(四)
- jQuery文档加载完再执行
- 2019下半年软件设计师下午题
- 【大气红歌】著名民通歌唱家拉齐的音乐之路
- Ubuntu16.04 (ROS)下通过CAN分析仪(USBCAN/CANalyst-II)调试无人车助力转向电机(1)
- java linux virt_解决Unable to load library 'virt'
热门文章
- python报错:No such file or directory: ‘D:\\Anaconda3\\lib\\venv\\scripts\\nt\\python.exe‘
- java导入lang_为什么java.lang不需要导放
- loadrunner mysql脚本_LoadRunner11_MySQL数据库脚本
- 本地计算机所安装的网络组件,3.2 在本地计算机中安装和配置IIS
- linux java mail 时间,Javamail在Windows上工作,而不是在Linux上
- 类型的值怎么用es查询_腾讯游戏信用分怎么查询在哪看 有什么用怎么提升介绍...
- ES6的Proxy对象
- Linux安装JDK完整步骤
- 网络流 小结(更新时间2015/8/8)更新中
- Struts2之控制标签