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



[函数名称]

部分彩色保留函数       WriteableBitmap PartialcolorProcess(WriteableBitmap src,int rValue,int gValue,int bValue)

[算法说明]

这个算法有多种,可以基于RGB,HSV等多种颜色空间来实现,本文介绍最简单的基于RGB颜色空间的彩色保留算法。

对于我们需要保留的像素P(x,y),它的RGB值分别为R(x,y),G(x,y),B(x,y),各个分量之间的关系有如下几种:

1--R>G>B;2—R>B>G;3—B>R>G;4—B>G>R;5—G>R>B;6—G>B>R;

对于当前像素f(x,y):

如果该像素的RGB分量关系情况与P(x,y)像素的分量关系情况相同,则该像素颜色保留,否则,将该像素做灰度化处理。

这样,就可以保留我们需要的颜色像素了。

[函数代码]

        /// <summary>/// Partial color process./// </summary>/// <param name="src">The source image.</param>/// <param name="rValue">R channel of pixel.</param>/// <param name="gValue">G channel of pixel.</param>/// <param name="bValue">B channel of pixel.</param>/// <returns></returns>public static WriteableBitmap PartialcolorProcess(WriteableBitmap src,int rValue,int gValue,int bValue)部分彩色{if (src != null){int w = src.PixelWidth;int h = src.PixelHeight;WriteableBitmap srcImage = new WriteableBitmap(w, h);byte[] temp = src.PixelBuffer.ToArray();byte[] tempMask = (byte[])temp.Clone();int r = 0, g = 0, b = 0;int grayValue=0;for (int j = 0; j < h; j++){for (int i = 0; i < w; i++){b = tempMask[i * 4 + j * w * 4];g = tempMask[i * 4 + 1 + j * w * 4];r = tempMask[i * 4 + 2 + j * w * 4];if (((r > b && b > g && rValue > gValue && gValue > bValue) || (r > g && g > b && rValue > gValue && gValue > bValue) || (g > r && r > b && gValue > rValue && rValue > bValue)|| (g > b && b > r && gValue > bValue && bValue > rValue) || (b > g && g > r && bValue > gValue && gValue > rValue) || (b > r && r > g && bValue > rValue && rValue > gValue))){}else{grayValue = (int)((tempMask[i * 4 + j * w * 4] + tempMask[i * 4 + 1 + j * w * 4] + tempMask[i * 4 + 2 + j * w * 4]) / 3);temp[i * 4 + j * w * 4] = temp[i * 4 + 1 + j * w * 4] = temp[i * 4 + 2 + j * w * 4] = (byte)grayValue;}}}Stream sTemp = srcImage.PixelBuffer.AsStream();sTemp.Seek(0, SeekOrigin.Begin);sTemp.Write(temp, 0, w * 4 * h);return srcImage;}else{return null;}}

Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法相关推荐

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

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

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

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

  3. Win8 Metro(C#)数字图像处理--4图像颜色空间描述

    原文:Win8 Metro(C#)数字图像处理--4图像颜色空间描述  图像颜色空间是图像颜色集合的数学表示,本小节将针对几种常见颜色空间做个简单介绍. /// <summary>// ...

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 02 Java程序员面试宝典视频课程之异常
  2. linux-命令替换-通配符-重定向-管道
  3. java之 代理设计模式
  4. Ajax实现局部数据交互的一个简单实例
  5. JRebel for IntelliJ 热部署方法
  6. git查看相对于最新的push改动内容
  7. 郑州银行评选神策数据为“最佳年度合作伙伴”
  8. 关于电脑(window)后门查看的一些总结
  9. linux kill 关闭进程命令
  10. Can 情态动词_50
  11. 静态路由实现路由过滤
  12. MAX30102 高灵敏度脉搏氧器和心率传感器说明书
  13. 元宵节没用智能名片在互联网发贺卡,那就OUT了
  14. Python反爬机制-验证码
  15. 寻找亲和数对C语言,寻找亲和数
  16. Excel如何批量删除批注
  17. [org.apache.pdfbox.pdmodel.font.PDTrueTypeFont] - Could not read embedded TTF for font CAAAAA+DengXi
  18. React进阶 - React脚手架
  19. 重学Java(007)—— Java基础知识(方法的练习,三个小例子、总结方法的注意事项)
  20. Pytorch之经典神经网络CNN(七) —— GoogLeNet(InceptionV1)(Bottleneck)(全局平均池化GAP)(1*1卷积)(多尺度)(flower花卉数据集)

热门文章

  1. NLP数据科学家不会告诉你的残酷事实
  2. AI 崛起的第九个年头,还有哪些大有可为的地方?
  3. 谷歌AI乳腺癌检测超过人类?美国知名记者:让糟糕的医疗更糟罢了
  4. 福利丨吴恩达机器学习新书免费领!
  5. Pytorch之GPU加速计算问题以及model=model.to(device)
  6. 牛顿第三定律不再起作用:芝加哥大学找到了一种新系统,作用力不等于反作用力...
  7. 2021年深度学习哪些方向比较有研究潜力?
  8. 学术交流丨魏子卿院士:北斗坐标系
  9. 神经网络原来是这样和数学挂钩的
  10. 任正非签发最新电邮:过去我们是为了赚点小钱,现在是要战胜美国