原文: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修正后的阿尔法滤波器相关推荐

  1. Win8 Metro(C#)数字图像处理--2.52图像K均值聚类

    原文:Win8 Metro(C#)数字图像处理--2.52图像K均值聚类  [函数名称] 图像KMeans聚类      KMeansCluster(WriteableBitmap src,int ...

  2. Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法

    原文:Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法  [函数名称] 部分彩色保留函数       WriteableBitmap PartialcolorProcess(W ...

  3. Win8 Metro(C#)数字图像处理--2.69中点滤波器

    原文:Win8 Metro(C#)数字图像处理--2.69中点滤波器 [函数代码] <strong> /// <summary>/// Mid-point filter./// ...

  4. Win8 Metro(C#)数字图像处理--2.66FloodFill算法

    原文:Win8 Metro(C#)数字图像处理--2.66FloodFill算法  [函数名称] 洪水填充算法函数 WriteableBitmap FloodfillProcess(Writeab ...

  5. Win8 Metro(C#)数字图像处理--3.3图像直方图计算

    原文:Win8 Metro(C#)数字图像处理--3.3图像直方图计算 /// <summary>/// Get the array of histrgram./// </summa ...

  6. Win8 Metro(C#)数字图像处理--2.35图像肤色检测算法

    原文:Win8 Metro(C#)数字图像处理--2.35图像肤色检测算法  [函数名称] 肤色检测函数SkinDetectProcess(WriteableBitmap src) [算法说明] ...

  7. Win8 Metro(C#)数字图像处理--2.50图像运动模糊

    原文:Win8 Metro(C#)数字图像处理--2.50图像运动模糊  [函数名称] 图像运动模糊算法    MotionblurProcess(WriteableBitmap src,int  ...

  8. Win8 Metro(C#)数字图像处理--2.40二值图像轮廓提取算法

    Win8 Metro(C#)数字图像处理--2.40二值图像轮廓提取算法 原文:Win8 Metro(C#)数字图像处理--2.40二值图像轮廓提取算法  [函数名称] 二值图像轮廓提取      ...

  9. Win8 Metro(C#)数字图像处理--2.39二值图像投影

    原文:Win8 Metro(C#)数字图像处理--2.39二值图像投影  [函数名称] 二值图像投影         ImageProjection(WriteableBitmap src) [算 ...

最新文章

  1. 单片机简单的计算器c语言程序,求一个 89C51 简易计算器的c语言程序 只要加减乘除就行!...
  2. msyql 字段说明
  3. hive中如何读取数组_hive解析json嵌套数组
  4. 从事UNIX/LInux服务器编程最方便的代码编译工具------(eclipse for c/c++)、(FileZilla)、(Secure CRT) 这三种一定要一起使用 之3...
  5. 【算法分析与设计】所有结点对的最短路径算法
  6. plsql developer 查看存储过程执行计划_产品简介 | X-Developer一站式研发效能管理平台...
  7. 随想录(文件系统的第一个用户程序shell)
  8. jquery选择器一
  9. 如何在几秒钟内退出所有 Mac 应用程序?
  10. 自食其力!ASP.NET 4打造HTML5视频控件
  11. 采集gpu_GPU是怎么处理游戏画面?一文看懂显卡的工作原理,原来这么简单
  12. 自然语言处理(NLP)资源
  13. IntelliJ IDEA 集成 SVN
  14. 合肥工业大学机器人技术期末_机器人技术基础期末考试复习资料
  15. mxchip EWM3166串口转WIFI AT指令设置
  16. 一分钟读懂马云在互联网大会的万字
  17. 什么是 Sidecar
  18. 时间计算题100道_数学大作战!小学13000道计算题+20000道口算题立即领!
  19. 不接受反驳,性能最强,功能最强的Java日志框架
  20. 微信小程序地图篇(腾讯地图)

热门文章

  1. 在计算机教学方面的论文,关于计算机教学方面的论文
  2. CentOS 6常用软件安装
  3. rtthread系统GDF450(BOOT+APP)
  4. 量子计算机次新股,周大生逼近跌停 次新股开板走弱成常态
  5. 一位近60岁的美国程序员令我狼狈不堪的回复
  6. 什么是服务器集群技术,有哪些优缺点?
  7. SQL2000装win10问题解决
  8. HPE主动求变 紫光华山布局中国市场
  9. 公云 PubYun – 一个可免费DDNS(动态域名)服务商
  10. 国家电网SAP 烂尾悬疑