Win8Metro图像处理(C#)
使用Win8 Metro C#编程,由简到难,给大家系统介绍数字图像处理这门学科的各种基础知识。
Trent1985
本人多年来专注图像特效、人像美颜美妆算法研究、AI美颜美妆探索,著有《图像视频滤镜与人像美颜美妆算法详解》一书,欢迎 志同道合的朋友们一起学习交流!
个人座右铭:谨言慎行,三思而后行!
展开
-
Win8 Metro(C#)数字图像处理--2.75灰度图像的形态学算法
前面章节中介绍了二值图像的形态学算法,这里讲一下灰度图的形态学算法,主要是公式,代码略。1,膨胀算法2,腐蚀算法3,开运算开运算:先进行一次腐蚀运算,接着进行一次膨胀运算。4,闭运算闭运算即:先进行一次膨胀运算,接着进行一次腐蚀运算。以上就是灰度图像的形态学算法。原创 2015-05-09 14:30:11 · 2326 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--4图像颜色空间描述
图像颜色空间是图像颜色集合的数学表示,本小节将针对几种常见颜色空间做个简单介绍。 /// /// Get rgba value from source image. /// /// The source image. /// public static byte[] RGB原创 2015-04-29 12:45:37 · 2329 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--3.5图像形心计算
/// /// Get the center of the object in an image. /// /// The source image. /// public static int[] CenterPoints(WriteableBitmap src) { i原创 2015-04-29 11:53:48 · 2110 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--3.4图像信息熵计算
[函数代码] /// /// Entropy of one image. /// /// The source image. /// public static double GetEntropy(WriteableBitmap src) { double原创 2015-04-29 11:51:02 · 2632 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--3.3图像直方图计算
/// /// Get the array of histrgram. /// /// The source image. /// public static int[] GetHistogramArray(WriteableBitmap src) ////34 图像直方图计算 {原创 2015-04-29 11:49:41 · 1733 阅读 · 1 评论 -
Win8 Metro(C#)数字图像处理--3.2图像方差计算
/// /// /// Variance computing. /// The source image. /// public static double GetVarianceProcess(WriteableBitmap src) ////33 图像方差计算 { if原创 2015-04-28 12:42:22 · 2141 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--3.1图像均值计算
/// /// Mean value computing. /// /// The source image. /// public static double GetMeanProcess(WriteableBitmap src) ////32 图像均值计算 { if (原创 2015-04-28 12:39:49 · 1913 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.74图像凸包计算
/// /// Convex Hull compute. /// /// The source image points. /// /// private static void ConvexhullCompute(ref Point[] srcPoints,ref ListstartPoint原创 2015-04-28 12:38:07 · 2121 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.73一种背景图像融合特效
/// /// Image merge process. /// /// The background image. /// The source image. /// One parameter, from 0 to 1. /// public static WriteableB原创 2015-04-27 16:38:01 · 2083 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.72图像噪声
[函数名称] 噪声函数WriteableBitmap NoiseProcess(WriteableBitmap src, byte flagNoise, double meanValue, double varianceValue) /// /// Noise process. /// /// The原创 2015-04-27 16:35:54 · 2088 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.71Sigma平滑滤波器
[算法说明] Sigma平滑滤波器是构造一个模板,比如3*3大小的模板,计算这个模板对应的像素的标准差d,然后根据统计学原理,得到一个置信区间v,假设3*3模板中心像素为p,则v大小范围为[p-d,p+d]。我们判断3*3模板中对应像素是否落在置信区间v内,对于在v内的像素,我们求取他们的均值,然后,当前模板对应的中心像素的滤波值就等于这个均值。图像表示如下:原创 2015-04-27 16:31:27 · 3614 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.70修正后的阿尔法滤波器
/// /// Alpha filter. /// /// The source image. /// One parameter set from 0 to 9. /// public static WriteableBitmap AlphaFilterProcess(WriteableBitm原创 2015-04-27 12:04:40 · 2565 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.69中点滤波器
[函数代码] /// /// Mid-point filter. /// /// The source image. /// public static WriteableBitmap MidPointFilterProcess(WriteableBitmap src)/原创 2015-04-27 12:02:48 · 3297 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.68图像最小值滤波器
/// /// Min value filter. /// /// The source image. /// public static WriteableBitmap MinFilterProcess(WriteableBitmap src)////最小值滤波器 { i原创 2015-04-27 12:00:36 · 1799 阅读 · 1 评论 -
Win8 Metro(C#)数字图像处理--2.67图像最大值滤波器
[函数名称] 最大值滤波器WriteableBitmap MaxFilterProcess(WriteableBitmap src)[算法说明] 最大值滤波属于非线性滤波方法,它是一种基于排序统计理论的可有效抑制噪声的非线性平滑滤波器,基本原理是把数字图像或数字序列中一点的值用该点的一个临域中各点值的最大值替换。[函数代码]原创 2015-04-26 13:16:26 · 1994 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.66FloodFill算法
[函数名称] 洪水填充算法函数WriteableBitmap FloodfillProcess(WriteableBitmap src,Point location, Color fillColor, int threshold)2,以这个点为起点,将它压入栈中,假设我们要填充的颜色为A,则将该点颜色设置为A,然后判断它的四邻域像素,这里我们设置一个颜色阈值T,假设当原创 2015-04-25 08:55:17 · 3697 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.65形态学轮廓提取算法
[函数名称] 形态学轮廓提取函数 WriteableBitmap MorcontourextractionProcess(WriteableBitmap src) /// /// Morgraphy contour extraction process. /// /// The source ima原创 2015-04-25 08:52:18 · 2773 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.64图像高斯滤波算法
[函数名称] 高斯平滑滤波器 GaussFilter(WriteableBitmap src,int radius,double sigma)[算法说明] 高斯滤波器实质上是一种信号的滤波器,其用途是信号的平滑处理。它是一类根据高斯函数的形状来选择权重的线性平滑滤波器,该滤波器对于抑制服从正态分布的噪声非常有效。高斯函数的公式如下所示:原创 2015-04-24 12:59:23 · 2161 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.63图像指数增强
[函数名称] 指数增强 WriteableBitmap IndexenhanceProcess(WriteableBitmap src)[函数代码] /// /// Enhanced index process. /// /// The source image.原创 2015-04-24 12:45:51 · 1723 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.62图像对数增强
[函数名称] 对数增强 WriteableBitmap LogenhanceProcess(WriteableBitmap src) /// /// Logarithm enhancement process. /// /// The source image. ///原创 2015-04-24 12:42:59 · 1840 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.61哈哈镜效果
[函数名称] 哈哈镜效果函数 WriteableBitmap DistortingMirrorProcess(WriteableBitmap src, int x, int y)[算法说明] 哈哈镜效果图像实际上是一种图像形变特效而已,对于这个特效,我们可以通过三角变换来实现。 1,对于哈哈镜效果变换,首先它有两个参数,原点坐标和特效影响因子。 对于图像中的像原创 2015-04-22 12:36:35 · 2133 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法
[函数名称] 部分彩色保留函数 WriteableBitmap PartialcolorProcess(WriteableBitmap src,int rValue,int gValue,int bValue)[算法说明] 这个算法有多种,可以基于RGB,HSV等多种颜色空间来实现,本文介绍最简单的基于RGB颜色空间的彩色保留算法。 对于我们需要保留的像素原创 2015-04-22 12:34:22 · 1508 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.59 P分位法图像二值化
[函数名称] P分位法图像二值化[算法说明] 所谓P分位法图像分割,就是在知道图像中目标所占的比率Ratio时,循环不同的灰度值对图像进行分割,并计算对应的目标所占的比率,如果该比率与Ratio的差值足够小,那么该阈值就是所求的最佳分割阈值。 /// /// P-Parameter method of image segmen原创 2015-04-21 12:59:04 · 1729 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.58双峰法图像二值化
[函数名称] 双峰法图像二值化 WriteableBitmap PeakshistogramThSegment(WriteableBitmap src) /// /// Peaks histogram method of image segmention. /// /// The source image.原创 2015-04-21 12:56:07 · 2407 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.57一维最大熵法图像二值化
[函数名称] 一维最大熵法图像二值化WriteableBitmap EntropymaxThSegment(WriteableBitmap src)[算法说明] 一维最大熵法图像分割就是利用图像的灰度分布密度函数定义图像的信息熵,通过优化一定的熵准则得到熵最大时对应的阈值,从而进行图像分割的方法。 算法过程: 1,对于一幅灰度图像,灰度范围为[0,L-1],原创 2015-04-21 12:53:33 · 2202 阅读 · 1 评论 -
Win8 Metro(C#)数字图像处理--2.56简单统计法图像二值化
[函数名称] 简单统计法图像二值化 WriteableBitmap StatisticalThSegment(WriteableBitmap src) /// /// Statistical method of image segmention. /// /// The source image.原创 2015-04-21 12:49:35 · 1328 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.55OSTU法图像二值化
[函数名称] Ostu法图像二值化 WriteableBitmap OstuThSegment(WriteableBitmap src)[函数代码] /// /// Ostu method of image segmention. /// /// The source image.原创 2015-04-21 12:47:16 · 1545 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.54迭代法图像二值化
[函数名称] 迭代法图像二值化 int IterativeThSegment(WriteableBitmap src)[函数代码] /// /// Iterative method of image segmention. /// /// The source image. //原创 2015-04-20 12:59:41 · 1768 阅读 · 0 评论 -
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,原创 2015-04-20 12:54:05 · 1615 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.52图像K均值聚类
[函数名称] 图像KMeans聚类 KMeansCluster(WriteableBitmap src,int k)/// /// KMeans Cluster process. /// /// The source image. /// Cluster threshould, from 2 to原创 2015-04-18 09:33:18 · 1834 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.51图像统计滤波算法
[函数名称] 图像统计滤波 WriteableBitmap StatisticalFilter(WriteableBitmap src,double T)/// /// Statistical filtering process. /// /// The source image. /// The thr原创 2015-04-18 09:31:43 · 1552 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.50图像运动模糊
[函数名称] 图像运动模糊算法 MotionblurProcess(WriteableBitmap src,int k,int direction)[算法说明] 运动模糊是指在摄像机获取图像时,由于景物和相机之间的相对运动而造成的图像上的模糊。这里我们主要介绍匀速直线运动所造成的模糊,由于非匀速直线运动在某些条件下可以近似为匀速直线运动,或者可以分解为多个匀速原创 2015-04-17 13:39:19 · 2364 阅读 · 1 评论 -
Win8 Metro(C#)数字图像处理--2.49Zhang二值图像细化算法
[函数名称] 二值图像细化算法 WriteableBitmap ThinningProcess(WriteableBitmap src)[算法说明] 图像细化(Image Thinning),一般指二值图像的骨架化(Image Skeletonization)的一种操作运算。所谓的细化就是经过一层层的剥离,从原来的图中去掉一些点,但仍要保持原来的形状,直到得到原创 2015-04-17 13:34:12 · 2425 阅读 · 1 评论 -
Win8 Metro(C#)数字图像处理--2.48Canny边缘检测算法
[算法说明]Canny边缘检测算法可以分为4步:高斯滤波器平滑处理、梯度计算、非极大值抑制、双阈值边缘检测和边缘连接。 1,高斯滤波器平滑处理。由于图像中经常包含一些高斯噪声,因此在边缘检测前我们要先用高斯滤波器对其进行滤波,为了方便,通常是使用一些高斯模板,这里我们使用如下的高斯滤波器模板。 /// /// Canny edge原创 2015-04-17 13:31:42 · 1962 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.47人脸红眼去除算法
[函数名称] 红眼去除 RedeyeRemoveProcess(WriteableBitmap src) /// /// Redeye remove Process. /// /// The source image. /// public static Write原创 2015-04-17 13:29:54 · 2559 阅读 · 1 评论 -
Win8 Metro(C#)数字图像处理--2.46图像RGB分量增强效果
[函数名称]RGB分量调整 RGBAdjustProcess(WriteableBitmap src, int value,int threshould)[算法说明] RGB分量调整实际上是分别对每个像素的RGB三个分量进行调整,公式如下:[函数代码] /// /// R,G,B value adjusting.原创 2015-04-17 13:26:41 · 1404 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.45图像雾化效果算法
[函数名称] 图像雾化 AtomizationProcess(WriteableBitmap src,int v)[算法说明] /// /// Atomization process. /// /// The source image. /// The thr原创 2015-04-16 09:50:32 · 2693 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.44图像油画效果算法
[函数名称] 图像油画效果 OilpaintingProcess(WriteableBitmap src)[算法说明] 图像油画效果可以看作是轻度的雾化,因此我们只需将雾化的阈值设置为2即可,雾化效果在下一小节有详细介绍。[函数代码] /// /// Oil painting process.原创 2015-04-16 09:45:38 · 2571 阅读 · 1 评论 -
Win8 Metro(C#)数字图像处理--2.43图像马赛克效果算法
[函数名称] 图像马赛克效果 MosaicProcess(WriteableBitmap src, int v)[算法说明] 图像马赛克效果其实就是将图像分成大小一致的图像块,每一个图像块都是一个正方形,并且在这个正方形中所有像素值都相等。我们可以将这个正方形看作是一个模板窗口,模板中对应的所有图像像素值都等于该模板的左上角第一个像素的像素值,这样的效果就是马原创 2015-04-15 12:34:15 · 2744 阅读 · 0 评论 -
Win8 Metro(C#)数字图像处理--2.42图像光照效果算法
[函数名称]图像光照效果 SunlightProcess(WriteableBitmap src,int X,int Y,float thresould)[算法说明] 图像光照效果就是在图像中添加上一个太阳光源,以此模仿光照条件。主要算法包括:1光源选择;2光照像素值求取。 1,光源选择。我们假设光源位置坐标为S(X,Y),其中光源坐标一定要保证在图像大小范围原创 2015-04-15 12:32:31 · 1960 阅读 · 0 评论