作者:未知

彩色图像转换为黑白图像时需要计算图像中每像素有效的亮度值,通过匹配像素

亮度值可以轻松转换为黑白图像。

计算像素有效的亮度值可以使用下面的公式:

Y=0.3RED+0.59GREEN+0.11Blue

然后使用 Color.FromArgb(Y,Y,Y) 来把计算后的值转换

转换代码可以使用下面的方法来实现:

[C#]

public Bitmap ConvertToGrayscale(Bitmap source)

{

  Bitmap bm = new Bitmap(source.Width,source.Height);

  for(int y=0;y<bm.Height;y++)

  {

    for(int x=0;x<bm.Width;x++)

    {

      Color c=source.GetPixel(x,y);

      int luma = (int)(c.R*0.3 + c.G*0.59+ c.B*0.11);

      bm.SetPixel(x,y,Color.FromArgb(luma,luma,luma));

    }

  }

  return bm;

}
[VB]

Public Function ConvertToGrayscale()Function ConvertToGrayscale(ByVal source As Bitmap) as Bitmap

  Dim bm as new Bitmap(source.Width,source.Height)

  Dim x

  Dim y

  For y=0 To bm.Height

    For x=0 To bm.Width

      Dim c as Color = source.GetPixel(x,y)

      Dim luma as Integer = CInt(c.R*0.3 + c.G*0.59 + c.B*0.11)

      bm.SetPixel(x,y,Color.FromArgb(luma,luma,luma)

    Next

  Next

  Return bm

End Function

当然了这是一个好的方法,如果需要更简单的做到图像的色彩转换还可以使用ColorMatrix类

如何将一个彩色图像转换成黑白图像相关推荐

  1. OpenCV | OpenCV将图像转换成黑白图像(二进制)

    将图像转换为黑白涉及两个步骤. 将源图像读取为灰度图像. 使用您选择的阈值将灰度图像转换为二进制图像. 如果源图像是灰度图像,则可以将步骤1中的图像读取为原始图像,然后继续步骤2.以下示例说明了从灰度 ...

  2. matlab下的彩色图像转换成二值图像并保存

    在matlab平台下,为了得到二值图像,先是用函数im2bw将彩色图像转换成二值图像,然后用imwrite函数生成指定路径的二值图像. 这里用到的例子是将彩色图像(64×64×3 uint8型图像数组 ...

  3. 在WPF中将图片转换成3D图像并可以旋转

    原文:在WPF中将图片转换成3D图像并可以旋转 时光偷走的,永远都是我们眼皮底下看不见的珍贵. https://pan.baidu.com/s/14dk-OU2SR0nxXj2bL4bVpQ 首先先看 ...

  4. php 将一个字符串转换成数组,PHP将一个字符串转换成数组

    PHP将一个字符串转换成数组,支持中文/** * 将一个字符串转换成数组,支持中文 * @param string $string 待转换成数组的字符串 * @return string 转换后的数组 ...

  5. [css] 使用css将图片转换成黑白的效果

    [css] 使用css将图片转换成黑白的效果 filter: saturate(0); 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目录 与歌谣 ...

  6. 纯CSS将图片转换成黑白

    纯CSS将图片转换成黑白 几行代码就可以实现!效果非常好! 1. 正常效果截图 鼠标悬停前后,分别示下: 2. 非正常效果截图:代码设置的不同,显示的效果不同! 比如:下面的设置导致图片效果不好! 参 ...

  7. 使用Jackson将一个对象转换成一个JSON字符串

    由于ajax的流行,在程序中使用了越来越多的json来进行数据的传输,而Jackson可以将一个普通的java对象转换成一个json的字符串,帮助程序员进行前后端数据的传输. 首先需要导入程序依赖的j ...

  8. http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理,及它的逆向函数...

    http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理 例如: $data = array('foo'=>'bar', 'b ...

  9. 小tip: 使用CSS将图片转换成黑白(灰色、置灰)[转]

    小tip: 使用CSS将图片转换成黑白(灰色.置灰) 这篇文章发布于 2012年08月19日,星期日,20:41,归类于 css相关, SVG相关. 阅读 159943 次, 今日 146 次 by ...

最新文章

  1. ServerSocket
  2. DeepMind强化学习新研究:更快的知识学习,更强的环境适应
  3. win10 IIS(互联网信息服务) 及 外网访问tomcat
  4. FPGA的IP软核、硬核以及固核
  5. 数据挖掘导论读书笔记9聚类分析
  6. 5.4 加权最小二乘法
  7. 当初互联网大佬给的几块钱“羊毛”,现在又要我们加倍还回去!
  8. poj Muddy Fields
  9. 中移4G模块-ML302-OpenCpu开发-ADC
  10. <input type=“file“> change事件异常处理办法
  11. Linux 2.6.19.x 内核编译配置选项简介
  12. setlocale()函数的作用
  13. 项目复盘内容及注意事项
  14. java framemaker教程_《FreeMarker教程-笔录》
  15. 2019年六月前端面试经验总结
  16. Altium数据向Cadence数据转换向导(上)
  17. 【C语言】main 函数的正确写法
  18. 绝对值海德汉编码器圆光栅RCN226/RCN228/RCN2380/RCN2310/RCN2381/RCN223FM/RCN2390FM/RCN2391FM参数
  19. 非常详细的微信跳一跳“黑科技”脚本
  20. 利用PhotoSwipe进行完成图片预览功能

热门文章

  1. OpenCV-Python绑定如何工作及如何扩展新模块到Python
  2. C语言:随笔9--链表
  3. autoware框架与功能简介(一)
  4. C语言实现bmp图像几何变换(移动,旋转,镜像,转置,缩放)
  5. Java内部类手机专卖店_Java(20)内部类
  6. Open3D面向机器学习的扩展库
  7. Rocksdb 内存“不释放”问题 分析
  8. leetcode-24 两两交换链表中的节点
  9. C语言网络编程:TCP编程模型
  10. CarTool 使用,获取图片资源