原文:Win8 Metro(C#)数字图像处理--2.66FloodFill算法  [函数名称]   洪水填充算法函数 WriteableBitmap FloodfillProcess(WriteableBitmap src,Point location, Color fillColor, int threshold) 2,以这个点为起点,将它压入栈中,假设我们要填充的颜色为A,则将该点颜色设置为A,然后判断它的四邻域像素,这里我们设置一个颜色阈值T,假设当前像素灰度值为P(x,y),四邻域…
原文:Win8 Metro(C#)数字图像处理--2.75灰度图像的形态学算法 前面章节中介绍了二值图像的形态学算法,这里讲一下灰度图的形态学算法,主要是公式,代码略. 1,膨胀算法 2,腐蚀算法 3,开运算 开运算:先进行一次腐蚀运算,接着进行一次膨胀运算. 4,闭运算 闭运算即:先进行一次膨胀运算,接着进行一次腐蚀运算. 以上就是灰度图像的形态学算法.  最后,分享一个专业的图像处理网站(微像素),里面有很多源代码下载: http://www.zealpixel.com/portal.p…
原文:Win8 Metro(C#)数字图像处理--2.64图像高斯滤波算法  [函数名称]   高斯平滑滤波器      GaussFilter(WriteableBitmap src,int radius,double sigma) [算法说明]   高斯滤波器实质上是一种信号的滤波器,其用途是信号的平滑处理.它是一类根据高斯函数的 形状来选择权重的线性平滑滤波器,该滤波器对于抑制服从正态分布的噪声非常有效.高斯函数 的公式如下所示: private static double[,] Ga…
原文:Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法  [函数名称]   部分彩色保留函数       WriteableBitmap PartialcolorProcess(WriteableBitmap src,int rValue,int gValue,int bValue) [算法说明]   这个算法有多种,可以基于RGB,HSV等多种颜色空间来实现,本文介绍最简单的基于RGB颜色空间的彩色保留算法.   对于我们需要保留的像素P(x,y),它的RGB值分别为R…
原文:Win8 Metro(C#)数字图像处理--2.48Canny边缘检测算法  [算法说明] Canny边缘检测算法可以分为4步:高斯滤波器平滑处理.梯度计算.非极大值抑制.双阈值边缘检 测和边缘连接.   1,高斯滤波器平滑处理.由于图像中经常包含一些高斯噪声,因此在边缘检测前我们要先用高斯 滤波器对其进行滤波,为了方便,通常是使用一些高斯模板,这里我们使用如下的高斯滤波器模板. /// <summary> /// Canny edge detect process. /// <…
原文:Win8 Metro(C#)数字图像处理--2.49Zhang二值图像细化算法  [函数名称]   二值图像细化算法      WriteableBitmap ThinningProcess(WriteableBitmap src) [算法说明]   图像细化(Image Thinning),一般指二值图像的骨架化(Image Skeletonization)的一种操作运算. 所谓的细化就是经过一层层的剥离,从原来的图中去掉一些点,但仍要保持原来的形状,直到得到图 像的骨架.骨架,可以…
原文:Win8 Metro(C#)数字图像处理--2.44图像油画效果算法  [函数名称]   图像油画效果      OilpaintingProcess(WriteableBitmap src) [算法说明]   图像油画效果可以看作是轻度的雾化,因此我们只需将雾化的阈值设置为2即可,雾化效果在下一小节有详细介绍. [函数代码] <strong> /// <summary> /// Oil painting process. /// </summary> ///…
原文:Win8 Metro(C#)数字图像处理--2.45图像雾化效果算法 [函数名称]   图像雾化         AtomizationProcess(WriteableBitmap src,int v) [算法说明] <strong> /// <summary> /// Atomization process. /// </summary> /// <param name="src">The source image.</p…
原文:Win8 Metro(C#)数字图像处理--2.47人脸红眼去除算法  [函数名称]   红眼去除     RedeyeRemoveProcess(WriteableBitmap src) /// <summary> /// Redeye remove Process. /// </summary> /// <param name="src">The source image.</param> /// <returns&g…
原文:Win8 Metro(C#)数字图像处理--2.40二值图像轮廓提取算法  [函数名称]   二值图像轮廓提取         ContourExtraction(WriteableBitmap src)  [算法说明]   二值图像的轮廓提取对于图像识别,图像分割有着重要意义.该算法的核心就是将图像目标的内部点消除.所谓内部点,我们要根据当前像素点的邻域来进行判断,假设邻域窗口为3*3窗口,如果当前像素P(x,y)的八个邻域像素满足如下条件,则该点即内部点:   1,P(x,y)为目…
原文:Win8 Metro(C#)数字图像处理--2.41彩色图像密度分割算法  [函数名称]   彩色图像密度分割函数      DensitySegmentProcess(WriteableBitmap src) [算法说明]   图像密度分割又叫做彩色等密度分割处理,一般图像(或影像)上色调的明暗是以附着在片基上的银粒子密度来计量的.因此,为了突出某一密度等级的色调(或相应地物),即将图像(或影像)的色调密度分划成若干个等级,并用不同的颜色分别表示这不同的密度等级,得到一幅彩色的等密度…
原文:Win8 Metro(C#)数字图像处理--2.42图像光照效果算法  [函数名称] 图像光照效果  SunlightProcess(WriteableBitmap src,int X,int Y,float thresould) [算法说明]   图像光照效果就是在图像中添加上一个太阳光源,以此模仿光照条件.主要算法包括: 1光源选择:2光照像素值求取.   1,光源选择.我们假设光源位置坐标为S(X,Y),其中光源坐标一定要保证在图像大小 范围内.有了光源位置,我们就可以来构建一个…
原文:Win8 Metro(C#)数字图像处理--2.43图像马赛克效果算法  [函数名称] 图像马赛克效果        MosaicProcess(WriteableBitmap src, int v) [算法说明] 图像马赛克效果其实就是将图像分成大小一致的图像块,每一个图像块都是一个正方形,并且在这个正方形中所有像素值都相等.我们可以将这个正方形看作是一个模板窗口,模板中对应的所有图像像素值都等于该模板的左上角第一个像素的像素值,这样的效果就是马赛克效果,而正方形模板的大小则决定了马…
原文:Win8 Metro(C#)数字图像处理--2.35图像肤色检测算法  [函数名称] 肤色检测函数SkinDetectProcess(WriteableBitmap src) [算法说明]   这个算法是一篇学术论文算法的实现,论文名字为"基于韧脸检测和颜色分析的红眼自动消除"(作者金秋明,王朔中),主要是采集并统计肤色像素,得到肤色像素在RGB颜色空间中的分布范围,以此作为像素是否为肤色像素的判断标准及约束条件.具体内容大家可以在网络中搜索,由统计结果得到的肤色范围如下公式…
原文:Win8 Metro(C#)数字图像处理--2.36角点检测算法  [函数名称] Harris角点检测函数    HarrisDetect(WriteableBitmap src, int CRF) [算法说明] 目前的角点检测算法可归纳为3类:基于灰度图像的角点检测.基于二值图像的角点检测.基于轮廓曲线的角点检测.基于灰度图像的角点检测又可分为基于梯度.基于模板和基于模板梯度组合3类方法,其中基于模板的方法主要考虑像素领域点的灰度变化,即图像亮度的变化,将与邻点亮度对比足够大的点定义…
原文:Win8 Metro(C#)数字图像处理--2.65形态学轮廓提取算法  [函数名称]   形态学轮廓提取函数       WriteableBitmap MorcontourextractionProcess(WriteableBitmap src) /// <summary> /// Morgraphy contour extraction process. /// </summary> /// <param name="src">Th…
原文:Win8 Metro(C#)数字图像处理--2.51图像统计滤波算法  [函数名称]   图像统计滤波   WriteableBitmap StatisticalFilter(WriteableBitmap src,double T) /// <summary> /// Statistical filtering process. /// </summary> /// <param name="src">The source image.&…
原文:Win8 Metro(C#)数字图像处理--2.67图像最大值滤波器  [函数名称]   最大值滤波器WriteableBitmap MaxFilterProcess(WriteableBitmap src) [算法说明]   最大值滤波属于非线性滤波方法,它是一种基于排序统计理论的可有效抑制噪声的非线性平滑滤波 器,基本原理是把数字图像或数字序列中一点的值用该点的一个临域中各点值的最大值替换. [函数代码] /// <summary> /// Max value filter. /…
原文:Win8 Metro(C#)数字图像处理--2.59 P分位法图像二值化  [函数名称]   P分位法图像二值化 [算法说明]   所谓P分位法图像分割,就是在知道图像中目标所占的比率Ratio时,循环不同的灰度值对图像进行 分割,并计算对应的目标所占的比率,如果该比率与Ratio的差值足够小,那么该阈值就是所求的最 佳分割阈值. /// <summary> /// P-Parameter method of image segmention. /// </summary>…
原文:Win8 Metro(C#)数字图像处理--2.61哈哈镜效果  [函数名称] 哈哈镜效果函数  WriteableBitmap DistortingMirrorProcess(WriteableBitmap src, int x, int y) [算法说明] 哈哈镜效果图像实际上是一种图像形变特效而已,对于这个特效,我们可以通过三角变换来实现. 1,对于哈哈镜效果变换,首先它有两个参数,原点坐标和特效影响因子. 对于图像中的像素点P(x,y),假设原点坐标为X,Y,那么,根据三角函数…
原文:Win8 Metro(C#)数字图像处理--2.57一维最大熵法图像二值化  [函数名称] 一维最大熵法图像二值化WriteableBitmap EntropymaxThSegment(WriteableBitmap src) [算法说明] 一维最大熵法图像分割就是利用图像的灰度分布密度函数定义图像的信息熵,通过优化一定的熵 准则得到熵最大时对应的阈值,从而进行图像分割的方法. 算法过程: 1,对于一幅灰度图像,灰度范围为[0,L-1],求取图像的最小灰度级min,最大灰度级max:…
原文:Win8 Metro(C#)数字图像处理--2.53图像傅立叶变换  [函数名称] 1,一维FFT变换函数         Complex[] FFT(Complex[] sourceData, int countN)   2,二维FFT变换函数           Complex[] FFT2(byte[] imageData,bool inv)   3,图像傅立叶变换幅度函数     WriteableBitmap FFTImage()   4,图像傅立叶变换相位函数     Wr…
原文:Win8 Metro(C#)数字图像处理--2.50图像运动模糊  [函数名称] 图像运动模糊算法    MotionblurProcess(WriteableBitmap src,int k,int direction) [算法说明] 运动模糊是指在摄像机获取图像时,由于景物和相机之间的相对运动而造成的图像上的模糊.这里 我们主要介绍匀速直线运动所造成的模糊,由于非匀速直线运动在某些条件下可以近似为匀速直线 运动,或者可以分解为多个匀速直线运动的合成,因此,在摄像机较短的图像曝光时间…
原文:Win8 Metro(C#)数字图像处理--2.46图像RGB分量增强效果  [函数名称] RGB分量调整         RGBAdjustProcess(WriteableBitmap src, int value,int threshould) [算法说明]   RGB分量调整实际上是分别对每个像素的RGB三个分量进行调整,公式如下: [函数代码] /// <summary> /// R,G,B value adjusting. /// </summary> ///…
原文:Win8 Metro(C#)数字图像处理--2.39二值图像投影  [函数名称]   二值图像投影         ImageProjection(WriteableBitmap src) [算法说明] [函数代码] <pre class="csharp" name="code"> /// <summary> /// Get projections of X and Y direction. /// </summary>…
原文:Win8 Metro(C#)数字图像处理--2.37Wallis图象锐化  [函数名称] Wallis图象锐化        WallisSharpen(WriteableBitmap src) [算法说明]  Wallis锐化算法是在拉普拉斯算子的基础上,考虑人的视觉特性中包含一个对数环节,因此在锐化时,采用对数处理的方法进行改进,公式如下: <strong><span style="font-size:14px;">[函数代码]</span&…
原文:Win8 Metro(C#)数字图像处理--2.38Hough变换直线检测  [函数名称] Hough 变换直线检测         HoughLineDetect(WriteableBitmap src, int threshould) [算法说明]   Hough变换是数字图像处理中一种常用的几何形状识别方法,它可以识别直线,圆,椭圆,弧线等 等几何形状,其基本原理是利用图像二维空间和Hough参数空间的点-线对偶性,把图像空间中的形 状检测问题转换到Hough的参数空间中去,最终…
原文:Win8 Metro(C#)数字图像处理--4图像颜色空间描述  图像颜色空间是图像颜色集合的数学表示,本小节将针对几种常见颜色空间做个简单介绍. /// <summary> /// Get rgba value from source image. /// </summary> /// <param name="src">The source image.</param> /// <returns></ret…
原文:Win8 Metro(C#)数字图像处理--3.2图像方差计算 /// <summary> /// /// </summary>Variance computing. /// <param name="src">The source image.</param> /// <returns></returns> public static double GetVarianceProcess(WriteableB…
原文:Win8 Metro(C#)数字图像处理--3.3图像直方图计算 /// <summary> /// Get the array of histrgram. /// </summary> /// <param name="src">The source image.</param> /// <returns></returns> public static int[] GetHistogramArray(Wr…