`

c#将图片转为灰度图片

c# 
阅读更多

public static Image ConvertToGrayScale(Image orginalImage)
{
    Bitmap newImage = new Bitmap(orginalImage);
    BitmapData orginalData = (orginalImage as Bitmap).LockBits(new Rectangle(0, 0, orginalImage.Width, orginalImage.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);

    BitmapData newData = (newImage as Bitmap).LockBits(new Rectangle(0, 0, orginalImage.Width, orginalImage.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
    int orginalstride = orginalData.Stride;
    System.IntPtr orginalScan0 = orginalData.Scan0;

    int newstride = newData.Stride;
    System.IntPtr newScan0 = newData.Scan0;
    unsafe
    {
        byte* pOrginal = (byte*)(void*)orginalScan0;
        byte* pNew = (byte*)(void*)newScan0;

        int nOffset = orginalstride - orginalImage.Width * 3;

        byte red, green, blue;

        for (int y = 0; y < orginalImage.Height; ++y)
        {
            for (int x = 0; x < orginalImage.Width; ++x)
            {
                blue = pOrginal[0];
                green = pOrginal[1];
                red = pOrginal[2];

                byte newPixel = Convert.ToByte((blue + red + green) / 3);

                pNew[0] = newPixel;
                pNew[1] = newPixel;
                pNew[2] = newPixel;

                pOrginal += 3;
                pNew += 3;
            }
            pOrginal += nOffset;
            pNew += nOffset;
        }
    }
    (orginalImage as Bitmap).UnlockBits(orginalData);
    (newImage as Bitmap).UnlockBits(newData);
    return newImage;
}
 转自: http://outofmemory.cn/code-snippet/584/c-jiang-tupian-zhuanwei-huidu-tupian
分享到:
评论

相关推荐

    C# 将彩色图片转换为灰度图片

    在图像处理领域,将彩色图片转换为灰度图片是一种常见的操作。这主要涉及到色彩空间的转换,其中最常见的是从RGB(红绿蓝)色彩空间转换到灰度色彩空间。在C#编程语言中,我们可以利用.NET框架提供的System.Drawing...

    C#添加图片并转为灰度图

    在C#编程中,添加图片并将其转换为灰度图是一项基本操作,广泛应用于图像处理领域。这个项目可能是一个简单的练习,旨在帮助初学者熟悉C#中的图像处理技术。下面我们将详细探讨如何实现这一功能。 首先,我们需要...

    c# 彩色图片处理:彩色转灰色,伪彩图,直方图,平滑处理,边缘检测

    在C#编程环境中,处理彩色图片涉及多个关键概念和技术,包括彩色到灰度转换、伪彩图、直方图分析、图像平滑处理以及边缘检测。以下是对这些知识点的详细阐述: 1. **彩色到灰度转换**: 在彩色图像处理中,将彩色...

    C#中将byte数组转换为8bit灰度图像

    在C#编程语言中,将byte数组转换为8bit灰度图像是一项常见且重要的技能,尤其是在处理图像数据或开发图像处理应用时。本文将详细解析这一过程,包括关键概念、技术细节以及具体实现步骤。 ### 关键概念 1. **8bit...

    C# 把彩色图片转换成黑白图片

    在C#编程环境中,我们可以利用图像处理库如System.Drawing来实现彩色图片向黑白图片的转换。这个过程通常称为灰度化或二值化,即将图片的每个像素从RGB(红绿蓝)三色模型转换为单色调。下面,我们将详细讨论如何...

    C# ocr识别图片中的文字源码

    对于云服务,通常需要将图片转为Base64编码的字符串。收到服务返回的识别结果后,解析JSON格式的响应数据,提取出识别的文字。 5. **错误处理与调试**:在实现过程中,可能会遇到网络问题、权限问题或API调用限制。...

    c#联合halcon编程,鼠标获取图像灰度值的小程序

    在彩色图像转为灰度图像后,可以通过这个灰度值来分析图像特征。 实现这个小程序的关键步骤包括: 1. **集成Halcon库**:在C#项目中,我们需要引入Halcon的.NET库,这样就可以调用Halcon提供的图像处理函数。通常...

    C#实现把彩色图片灰度化代码分享

    彩色图片转为灰度图的公式如下: 代码如下: gray(i,j) = 0.299 * Red(i,j)+0.587*Green(i,j)+0.114*Blue(i,j) 其中gray(i,j) 为转化后的灰度值 (i,j)为像素点的位置。 源代码如下: public ...

    C#图像处理实践——图片不同提取

    例如,将所有像素颜色转为灰度: ```csharp for (int x = 0; x ; x++) { for (int y = 0; y ; y++) { Color pixel = image.GetPixel(x, y); int gray = (pixel.R + pixel.G + pixel.B) / 3; image.SetPixel(x, ...

    图像灰度拉伸

    2. **灰度转换**:图像从彩色转为灰度,通常通过红绿蓝(RGB)三通道的加权平均实现。权重可以是255/3,或者根据人眼对颜色敏感度的权重0.299R + 0.587G + 0.114B。 3. **灰度直方图**:直方图是图像亮度分布的统计...

    C# 图形图像处理 彩图转为灰阶

    本文将详细介绍如何使用C#语言实现彩色图像到灰度图像的转换,并对提供的代码进行解析。 #### 一、基础知识概述 1. **颜色模型**:在计算机图形学中,常用的RGB颜色模型是由红(Red)、绿(Green)和蓝(Blue)三...

    OpenCvSharp与Picturebox实现图片打开、读取、灰度转换与保存

    OpenCvSharp与Picturebox实现图片打开、读取、灰度转换与保存

    32 位和 24 色位图(Bitmap)转 8 位灰度图;8 位灰度图生成一个直方图

    1.C#编写 32 位和 24 色位图(Bitmap)转 8 位灰度图像函数2.8 位灰度图生成直方图,可在 Chart 中显示

    将图片转换为8位图像

    在本篇文章中,我们将深入探讨如何使用C#编程语言将一幅24位或16位的彩色图像转换成8位图像。此过程涉及到颜色量化、调色板管理和可能的抖动处理技术。以下是对该主题的详细解析: ### 1. 8位图像的基本概念 在...

    扫描图片,输出图片文字,C#,winform,VS2012

    为了增强OCR的准确性和适应性,可以对图像进行预处理,如调整亮度、对比度,或者将图片转为灰度,以减少噪音和提高识别率。Tesseract提供了一些图像处理函数,可以在处理图像前使用。 此外,你可以将识别结果展示在...

    c#指针图像处理图像处理图像处理

    根据给定的信息,本文将详细解释C#中的指针应用在图像处理中的具体实现方法,同时探讨代码片段中涉及的关键概念和技术。 ### C#指针与图像处理 #### 概述 C#作为一种广泛使用的面向对象编程语言,在.NET框架的支持...

    获取鼠标单击处图像的灰度值以及坐标

    # 读取图像并转为灰度 img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE) # 设置鼠标回调函数 cv2.setMouseCallback('Image', mouse_callback) # 显示图像 while True: cv2.imshow('Image', img) if cv2....

    TGA解析工具_C#图像_大话西游_tga转为png_

    2. **处理颜色格式**:TGA支持多种颜色格式,如RGB、RGBA、灰度等,程序需要正确解析这些格式并将其转换为PNG兼容的格式。 3. **错误处理**:由于该工具是针对特定用途开发的,可能只处理了一部分TGA格式,因此对于...

    华睿和海康相机SDK-C#开发示例,取像后图片转成visionpro9.0的CogImage8Grey格式

    本示例主要涉及C#语言,利用这两家公司的SDK,将相机捕获的图像转换为VisionPro 9.0的CogImage8Grey格式。 首先,SDK是软件开发工具包,它包含了一系列的库、接口文档、示例代码和工具,以供开发者构建与特定硬件或...

    C#中实现海康相机取的图像格式与VisionPro图像格式的转换.rar

    在本文中,我们将深入探讨如何在C#编程环境中实现海康相机获取的图像格式与National Instruments的VisionPro图像格式之间的转换。海康威视是一家知名的安防监控设备制造商,其相机可提供多种图像格式,而VisionPro是...

Global site tag (gtag.js) - Google Analytics