Win8 Metro(C#)数字图像处理--2.70修正后的阿尔法滤波器
/// <summary>/// Alpha filter./// </summary>/// <param name="src">The source image.</param>/// <param name="tNumber">One parameter set from 0 to 9.</param>/// <returns></returns>public static WriteableBitmap AlphaFilterProcess(WriteableBitmap src, int tNumber)修正的阿尔法滤波器{if (src != null){int w = src.PixelWidth;int h = src.PixelHeight;WriteableBitmap filterImage = new WriteableBitmap(w, h);byte[] temp = src.PixelBuffer.ToArray();byte[] tempMask = (byte[])temp.Clone();double[] Gray = new double[9];double gray = 255;int tempr = 0, tempb = 0, tempg = 0;for (int j = 1; j < h - 1; j++){for (int i = 1; i < w - 1; i++){tempb = 0;tempg = 0;tempr = 0;int[] B = new int[9] { tempMask[i * 4 + j * w * 4], tempMask[(i - 1) * 4 + (j - 1) * w * 4], tempMask[i * 4 + (j - 1) * w * 4], tempMask[(i + 1) * 4 + (j - 1) * w * 4], tempMask[(i - 1) * 4 + j * w * 4], tempMask[(i + 1) * 4 + j * w * 4], tempMask[(i - 1) * 4 + (j + 1) * w * 4], tempMask[i * 4 + (j + 1) * w * 4], tempMask[(i + 1) * 4 + (j + 1) * w * 4] };int[] G = new int[9] { tempMask[i * 4 + 1 + j * w * 4], tempMask[(i - 1) * 4 + 1 + (j - 1) * w * 4], tempMask[i * 4 + 1 + (j - 1) * w * 4], tempMask[(i + 1) * 4 + 1 + (j - 1) * w * 4], tempMask[(i - 1) * 4 + 1 + j * w * 4], tempMask[(i + 1) * 4 + 1 + j * w * 4], tempMask[(i - 1) * 4 + 1 + (j + 1) * w * 4], tempMask[i * 4 + 1 + (j + 1) * w * 4], tempMask[(i + 1) * 4 + 1 + (j + 1) * w * 4] };int[] R = new int[9] { tempMask[i * 4 + 2 + j * w * 4], tempMask[(i - 1) * 4 + 2 + (j - 1) * w * 4], tempMask[i * 4 + 2 + (j - 1) * w * 4], tempMask[(i + 1) * 4 + 2 + (j - 1) * w * 4], tempMask[(i - 1) * 4 + 2 + j * w * 4], tempMask[(i + 1) * 4 + 2 + j * w * 4], tempMask[(i - 1) * 4 + 2 + (j + 1) * w * 4], tempMask[i * 4 + 2 + (j + 1) * w * 4], tempMask[(i + 1) * 4 + 2 + (j + 1) * w * 4] };for (int n = 0; n < 9; n++){Gray[n] = (double)B[n] * 0.114 + (double)G[n] * 0.587 + (double)R[n] * 0.299;} for (int x = 0; x < 9; x++){for (int y = x + 1; y < 9; y++){gray = Gray[x];tempb = B[x];tempg = G[x];tempr = R[x];if (Gray[x] > Gray[y]){Gray[x] = Gray[y];Gray[y] = gray;B[x] = B[y];G[x] = G[y];R[x] = R[y];B[y] = tempb;G[y] = tempg;R[y] = tempr;}}}if (tNumber < 0 || tNumber > 8) return null;tNumber = (tNumber % 2 == 0 ? tNumber : tNumber - 1);for (int m = 0; m < (int)(tNumber / 2); m++){R[m] = 0;G[m] = 0;B[m] = 0;R[8 - m] = 0;G[8 - m] = 0;B[8 - m] = 0;}temp[i * 4 + j * w * 4] = (byte)(B.Sum() / (9 - tNumber));temp[i * 4 + 1 + j * w * 4] = (byte)(G.Sum() / (9 - tNumber));temp[i * 4 + 2 + j * w * 4] = (byte)(R.Sum() / (9 - tNumber));}}Stream sTemp = filterImage.PixelBuffer.AsStream();sTemp.Seek(0, SeekOrigin.Begin);sTemp.Write(temp, 0, w * 4 * h);return filterImage;}else{return null;}}
Win8 Metro(C#)数字图像处理--2.70修正后的阿尔法滤波器相关推荐
- Win8 Metro(C#)数字图像处理--2.52图像K均值聚类
原文:Win8 Metro(C#)数字图像处理--2.52图像K均值聚类 [函数名称] 图像KMeans聚类 KMeansCluster(WriteableBitmap src,int ...
- Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法
原文:Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法 [函数名称] 部分彩色保留函数 WriteableBitmap PartialcolorProcess(W ...
- Win8 Metro(C#)数字图像处理--2.69中点滤波器
原文:Win8 Metro(C#)数字图像处理--2.69中点滤波器 [函数代码] <strong> /// <summary>/// Mid-point filter./// ...
- Win8 Metro(C#)数字图像处理--2.66FloodFill算法
原文:Win8 Metro(C#)数字图像处理--2.66FloodFill算法 [函数名称] 洪水填充算法函数 WriteableBitmap FloodfillProcess(Writeab ...
- Win8 Metro(C#)数字图像处理--3.3图像直方图计算
原文:Win8 Metro(C#)数字图像处理--3.3图像直方图计算 /// <summary>/// Get the array of histrgram./// </summa ...
- Win8 Metro(C#)数字图像处理--2.35图像肤色检测算法
原文:Win8 Metro(C#)数字图像处理--2.35图像肤色检测算法 [函数名称] 肤色检测函数SkinDetectProcess(WriteableBitmap src) [算法说明] ...
- Win8 Metro(C#)数字图像处理--2.50图像运动模糊
原文:Win8 Metro(C#)数字图像处理--2.50图像运动模糊 [函数名称] 图像运动模糊算法 MotionblurProcess(WriteableBitmap src,int ...
- Win8 Metro(C#)数字图像处理--2.40二值图像轮廓提取算法
Win8 Metro(C#)数字图像处理--2.40二值图像轮廓提取算法 原文:Win8 Metro(C#)数字图像处理--2.40二值图像轮廓提取算法 [函数名称] 二值图像轮廓提取 ...
- Win8 Metro(C#)数字图像处理--2.39二值图像投影
原文:Win8 Metro(C#)数字图像处理--2.39二值图像投影 [函数名称] 二值图像投影 ImageProjection(WriteableBitmap src) [算 ...
最新文章
- 单片机简单的计算器c语言程序,求一个 89C51 简易计算器的c语言程序 只要加减乘除就行!...
- msyql 字段说明
- hive中如何读取数组_hive解析json嵌套数组
- 从事UNIX/LInux服务器编程最方便的代码编译工具------(eclipse for c/c++)、(FileZilla)、(Secure CRT) 这三种一定要一起使用 之3...
- 【算法分析与设计】所有结点对的最短路径算法
- plsql developer 查看存储过程执行计划_产品简介 | X-Developer一站式研发效能管理平台...
- 随想录(文件系统的第一个用户程序shell)
- jquery选择器一
- 如何在几秒钟内退出所有 Mac 应用程序?
- 自食其力!ASP.NET 4打造HTML5视频控件
- 采集gpu_GPU是怎么处理游戏画面?一文看懂显卡的工作原理,原来这么简单
- 自然语言处理(NLP)资源
- IntelliJ IDEA 集成 SVN
- 合肥工业大学机器人技术期末_机器人技术基础期末考试复习资料
- mxchip EWM3166串口转WIFI AT指令设置
- 一分钟读懂马云在互联网大会的万字
- 什么是 Sidecar
- 时间计算题100道_数学大作战!小学13000道计算题+20000道口算题立即领!
- 不接受反驳,性能最强,功能最强的Java日志框架
- 微信小程序地图篇(腾讯地图)