`

图像变成黑白

    博客分类:
  • C#
 
阅读更多

在写代码之前,先在工程的 属性-->生成-->勾选 “允许不安全代码“

 

 

 

 public Bitmap ConvertBmp(System.Drawing.Bitmap bmp, int mode)
        {
            bool ret = true;             
            int w = bmp.Width;
            int h = bmp.Height;
            try
            {
                byte newColor = 0;
                BitmapData srcData = bmp.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadWrite, PixelFormat.Gdi);
                unsafe
                {
                    byte* p = (byte*)srcData.Scan0.ToPointer();
                    for (int y = 0; y < h; y++)
                    {
                        for (int x = 0; x < w; x++)
                        {

                            if (mode == 0) // 加权平均
                            {
                                newColor = (byte)((float)p[0] * 0.114f + (float)p[1] * 0.587f + (float)p[2] * 0.299f);
                            }
                            else    // 算数平均
                            {
                                newColor = (byte)((float)(p[0] + p[1] + p[2]) / 3.0f);
                            }
                            p[0] = newColor;
                            p[1] = newColor;
                            p[2] = newColor;

                            p += 3;
                        }
                        p += srcData.Stride - w * 3;
                    }
                    bmp.UnlockBits(srcData);
                    return bmp;
                }
            }
            catch
            {
                return null;
            }
        }
 
分享到:
评论

相关推荐

    c#下把彩色图像变成黑白图像

    本教程将深入讲解如何利用C#语言在VS2008中实现将彩色图像转换为黑白(灰度)图像的功能。 首先,我们需要了解图像的基本概念。图像可以分为两种类型:位图和矢量图。在处理彩色转黑白的过程中,我们主要涉及的是...

    15.如何将彩色图像转换成黑白图像?(Visual C++编程 源代码)

    15.如何将彩色图像转换成黑白图像?(Visual C++编程 源代码)15.如何将彩色图像转换成黑白图像?(Visual C++编程 源代码)15.如何将彩色图像转换成黑白图像?(Visual C++编程 源代码)15.如何将彩色图像转换成...

    如何保存成彩色的eps图片?Matlab保存的eps图片变成黑白色问题

    解决Matlab保存的EPS图片变成黑白色的问题 在进行科研工作或者撰写论文时,我们经常需要将Matlab中的图形导出为各种格式的图片,以便于进一步编辑或者插入到文档中。EPS(Encapsulated PostScript)是一种常用的...

    matlab的figure另存为eps变成黑白图片的解决方法.docx

    然而,在保存MATLAB的Figure为EPS格式时,有时会遇到原本的彩色图像变为黑白的问题。本文将详细介绍这一现象的原因及解决方法。 #### 问题描述 当使用MATLAB保存Figure为EPS格式时,可能会发现保存后的EPS文件在...

    数字图像处理实验

    数字图像处理实验 .1计算出一幅灰度图像的直方图; 2. 对灰度图像进行简单的灰度线形变换,看其直方图的对应变化和图像对比度的...3.图像二值化(选取一个阈值,将图像变成黑白图像); 4.利用直方图均衡化进行图像增强;

    matlab开发-将图像转换为黑白图像

    在MATLAB中,将彩色图像转换为黑白图像(也称为二值图像)是图像处理中的一个常见任务。这个过程通常涉及到灰度化和阈值处理。在这个“matlab开发-将图像转换为黑白图像”的项目中,我们关注的是通过一种特殊方法...

    JavaScript 黑白反转彩色图像

    本项目提供了一个JavaScript插件,能够将任意彩色图片转换成黑白灰阶图像,适用于网页开发中的图像处理需求。下面我们将深入探讨这一技术的核心原理、实现方法以及可能的应用场景。 首先,我们要理解灰阶图像的原理...

    C#联合halcon显示彩色图像转黑白

    C#联合halcon显示彩色图像转黑白,适合初学者

    基于LabVIEW的图像二值化程序

    图片二值化是针对灰度图片的过程上进行的,即将整个灰度图片上的像素点的灰度值设置为0或255,整个图片只有黑白两种颜色,最后的图片是黑白色的效果[10]。灰度化可以有255个亮度等级,而二值化只有两个,0和255,即...

    用OpenCV实现Photoshop算法_变为黑白图像

    用OpenCV实现Photoshop算法:变为黑白图像 Photoshop提供了一个高级的黑白图像调整功能,可获得更好的黑白图像效果。可设置了 red, yellow, green, cyan, blue, magenta 六个颜色的灰度系数,调整黑白效果。

    武汉理工大学数字图像处理实验.pdf

    3. 图像二值化(选取一个域值,将图像变为黑白图像); 4. 利用直方图均衡化进行图像增强。 实验结果及分析:计算出一幅灰度图象的直方图,分析:灰度直方图(histogram)是灰度级的函数,它表示图象中具有每种灰度...

    Opencv图像处理经典例图

    5. **阈值分割**:通过`threshold()`函数,可以将图像二值化,使图像变为黑白两色,便于后续的图像分析。例如,`ret, binary_img = cv2.threshold(gray_img, thresh, maxval, type)`。 6. **色彩空间转换**:OpenCV...

    图像处理与分析

    二值化通过设定一个阈值,使得像素值高于阈值的变为白色(常表示物体),低于阈值的变为黑色(常表示背景)。 **灰度切分**则是将彩色图像转换为灰度图像后,进一步将灰度级进行分割。这个过程涉及到灰度直方图,...

    数字图像处理 完整源代码

    在实际应用中,可能使用了阈值处理技术,通过设定一个阈值,像素值高于该阈值的变为白色,低于则变为黑色。 4. **直方图**:在图像处理中,直方图是一种统计图像亮度或颜色分布的方法,它表示图像中不同亮度或颜色...

    基于Labview的图像采集与处理.docx

    这时,图像反色处理可以将图像的颜色反转,使物体连通域变为白色,背景变为黑色。 图像增强 图像增强是指通过对图像灰度作修正,改善图像的视觉效果的过程。图像增强的目的是提供直观、清晰、适合于分析的图像。 ...

    labview将RGB图像转为灰度图像

    用于处理labview二值化图像的颜色,是二值化的图像从红黑变为黑白

    数字图像处理—图像反色

    此外,图像反色也是图像二值化的一个预处理步骤,二值化是将图像转化为黑白两色,便于后续的文本识别或边缘检测等任务。 总的来说,"图像反色"是数字图像处理中的基础操作之一,它涉及到对像素颜色的理解、颜色空间...

    易语言图片黑白特效

    在彩色图像中,每个像素通常由红、绿、蓝三种颜色的强度组成,而在黑白图像中,每个像素只有一个值,表示亮度。这个亮度值覆盖了从黑色(0)到白色(255)的范围。因此,将彩色图像转换为黑白图像的过程就是将RGB三...

    图像显示及图像技术处理

    8. **底片效果**:反转图像的颜色,使得白色变为黑色,黑色变为白色。在PIL中,可以使用负片模式来实现: ```python negative_image = image.point(lambda p: 255 - p) ``` 9. **显示每个像素的RGB值**:可以...

    图像处理 图像加网算法

    “图像反相”则是将图像的色彩空间中的颜色值取反,黑色变成白色,白色变成黑色,其他颜色则相应地向其补色转换。这种操作常用于图像调试或创建负片效果。 最后,我们谈到“直方图均衡化”。这是一种增强图像对比度...

Global site tag (gtag.js) - Google Analytics