
Image Processing
文章平均质量分 79
hhygcy
这个作者很懒,什么都没留下…
展开
-
图像锐化 边缘检测的一些基础知识
互联网兴起, 生活节奏飞速,快餐成了favorite。理论学习也受到了巨大的冲击,一些不明所以的冰冷的公式和整段可以运行的代码是很多人的最爱。使得原本应该沉静的软件开发变得异常浮躁,(当然很多博客也成了帮凶:))今天就要融化冰雪, 说说代码以外的东西,说说冰雪初成的原因。 锐化的概念,我们从锐度开始谈起。很多人都以为锐度就是Sharpness,其实在数字图像的领域, 这个锐度更准确的说法是原创 2009-07-29 14:04:00 · 12878 阅读 · 5 评论 -
高斯平滑 高斯模糊 高斯滤波器 ( Gaussian Smoothing, Gaussian Blur, Gaussian Filter ) C++ 实现
发展到现在这个平滑算法的时候, 我已经完全不知道如何去命名这篇文章了, 只好罗列出一些关键字来方便搜索了.在之前我们提到过了均值滤波器, 就是说某像素的颜色, 由以其为中心的九宫格的像素平均值来决定. 在这个基础上又发展成了带权的平均滤波器, 这里的高斯平滑或者说滤波器就是这样一种带权的平均滤波器. 那么这些权重如何分布呢? 我们先来看几个经典的模板例子:尝试了使用这些滤波原创 2009-07-07 18:43:00 · 75468 阅读 · 21 评论 -
混合中值滤波器 ( Hybrid Median Filter ) C++ 实现
在中值滤波器和均值滤波器之后, 我们看到是中值滤波器的改版, 这个名字我实在不好把握 Hybrid Median Filter实在不知道翻译成什么比较妥当.只好沿用了混合动力车里面的混合二字, 姑且把这种滤波器命名为混合中值滤波器. 这个滤波器的工作流程较之原先有些繁琐, 来看看这张图图截的有些模糊, 但是还是看出了大致的流程, 首先当前像素的上下左右和自身取中值, 然后左上右原创 2009-07-07 11:49:00 · 6929 阅读 · 2 评论 -
中值滤波器 ( Median Filter ) C++ 实现
有了前面一个均值滤波器的基础, 在看中值滤波器就不是很容易继续了。均值滤波是像素周围的3*3的像素做平均值操作, 那么中值就是在3*3中的像素中寻找中值。 来看这样一个描述图(无图无真相)这把可以清晰地看到, 这里有6,2,0,3,97,4,19,3,10这些像素, 然后中间的这些像素值就被这些像素的中位数也就是中值取代了。为了满足和前面一篇文章的格式相对应, 我们马上进入下原创 2009-07-06 15:41:00 · 39848 阅读 · 14 评论 -
均值滤波器 ( Mean Filter ) C++ 实现
原来是不做图像处理这块的, 所以对这里的专用名字不是特别感冒, 滤波器听来玄而又玄。真正拿来看了之后就不过尔尔了, 这把拿了一个均值滤波器的例子来做记录, 希望可以依次把一些median filter, gaussian blur都拿来说说。好吧言归正传, 这里就具体说说均值滤波器是什么东西吧。其实这个东西就是在图像处理的时候, “把每个像素都用周围的8个像素来做均值操作”, 比如说这里有原创 2009-07-06 14:59:00 · 30902 阅读 · 10 评论 -
Wellner 1993快速自适应的图像二值化方法的提高 (Derek Bradley and Gerhard Roth 2007)
前面一种方案实际上还是存在一定的问题的, 就是这个避重就轻的初始g(n)值127*s(127表示0-255之间的中间值), 这个东西带来的最直接的问题就是边缘的效果在这个算法下是不咋地的。 其实从这个所谓的"Wellner 1993", 后人又做了很多的改进, 使之效率更高, 效果更好。比方说这个Derek Bradley和Gerhard Roth搞的这个所谓 Adaptive Threshold原创 2009-06-18 15:54:00 · 10375 阅读 · 14 评论 -
一种快速自适应的图像二值化方法介绍 (Wellner 1993)
在手机模式识别的时候, 我们首先viewfinder里面拿到的frame通常是RGB的或者YUV的, 如果我们需要用来做模式识别的话, 通常需要首先把彩色图首先转化成灰度图. 对于RGB图像而言, 网上有充足的公式, 比如Y = 0.299R + 0.587G + 0.114B 等等. 如果是YUV的话, 直接用Y就是灰度图了. 顺带说一句, 这种灰度图通常我们用.raw文件来表示, 用photo原创 2009-06-12 21:03:00 · 11703 阅读 · 5 评论 -
双线性插值(Bilinear interpolation)的图像旋转在mobile上面的C++实现
在图像拉伸了以后, 很自然地我们想把图像的旋转也做进来。我们找来了图像旋转的公式: X = X cosθ - Y sinθ;Y = X sinθ + Y cosθ; 这个图像公式大家在高中数学课都是会算滴。 然后我们要扩展一下因为我们不是在原点做旋转,我们要围绕原来的图片中心做旋转, 那么我们假定原来的图像中心是 oldCenterX, oldCenterY原创 2009-08-20 12:06:00 · 8525 阅读 · 15 评论 -
双线性插值(Bilinear interpolation)的图像拉伸在mobile上面的实现
在进入频域变换之前, 我们还是轻松一下,再搞点平面上的变化来看看。这把选了一个双线性插值(Bilinear interpolation)来实现是源于看到了csdn上别人的问题, 权且实现一个函数,方便大家的使用吧。双线性插值简单的说,就是扩展了之后的图像像素坐标映射回原来的坐标空间的时候, 如果出现了没有对应到整数点的情况。这时候需要做2次线性的插值计算出新的坐标的像素值,比如说:原创 2009-08-11 15:51:00 · 10255 阅读 · 9 评论 -
图像锐化算法 C++ 实现
之前一段我们提到的算法都是和平滑有关, 经过平滑算法之后, 图像锐度降低, 降低到一定程度, 就变成了模糊。 今天我们反其道行之, 我们看看锐化是怎么做的。 这里的锐化, 还是的从平滑谈开去。我们先来观察原来的图像和平滑图像的区别: 原图 raw 减去模糊图 blur原创 2009-07-08 13:41:00 · 23764 阅读 · 11 评论