C#数字图像处理的方法

本文主要通过彩色图象灰度化来介绍C#处理数字图像的3种方法,Bitmap类、BitmapData类和 Graphics类是C#处理图像的的3个重要的类。

Bitmap只要用于处理由像素数据定义的图像的对象,主要方法和属性如下:

GetPixel方法和SetPixel方法,获取和设置一个图像的指定像素的颜色。

PixelFormat属性,返回图像的像素格式。

Palette属性,获取或折纸图像所使用的颜色调色板。

Height属性和Width属性,返回图像的高度和宽度。

LockBits方法和UnlockBits方法,分别锁定和解锁系统内存中的位图像素。

BitmapData对象指定了位图的属性:

Height属性,被锁定位图的高度。

Width属性,被锁定位图的宽度。

PixelFormat属性,数据的实际像素格式。

Scan0属性,被锁定数组的首字节地址。

Stride属性,步幅,也称扫描宽度。

彩色图象灰度化

24位彩色图象每个像素用3个字节表示,每个字节对应着R、G、B分量的亮度(红、绿、蓝)。当3个 分量不想同时表现为灰度图像。下面有三种转换公式:

Gray(I,j)为转换后的灰度图像在(I,j)点出的灰度值。由于人眼对颜色的感应不同,有了下面的转 换公式:

观察发现绿色所占比重最大,所以转换时直接使用G值作为转换结果:

图像处理的3种方法分别是:提取像素法、内存法和指针法,它们各自有各自的特点。

提取像素法

使用的是GDI+中的Bitmap.GetPixel和Bitmap.SetPixel方法。

if (bitmap != null)
{
    newbitmap = bitmap.Clone() as Bitmap;
    Color pixel;
    int ret;
    for (int x = 0; x < newbitmap.Width; x++)
    {
        for (int y = 0; y < newbitmap.Height; y++)
        {
            pixel = newbitmap.GetPixel(x, y);
            ret = (int)(pixel.R * 0.299 + pixel.G * 0.587 + pixel.B * 0.114);
            newbitmap.SetPixel(x, y, Color.FromArgb(ret, ret, ret));
        }
    }
    pictureBox1.Image = newbitmap.Clone() as Image;
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索图像
, c#
, 数字图像处理
, 像素提取
, 方法
, 位图
, 属性
, 像素
, 数字图像
, C#读图像
, SETPIXEL
, java图像灰度化
图像灰度化
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。

时间: 2024-08-25 23:04:57

C#数字图像处理的方法的相关文章

《Visual C++数字图像模式识别技术详解(第2版)》一1.1 数字图像处理概述

1.1 数字图像处理概述 数字图像处理也称为计算机图像处理,是指将图像信号转换成数字格式并利用计算机对其进行处理的过程.数字图像处理起始于20世纪50年代,并于20世纪60年代初期形成一门独立学科.目前,数字图像处理技术作为自动化.信息化的一个重要手段广泛应用于各行各业许多环节中,为提高工作效率和工作精度做出了不可忽视的贡献.正因为如此,图像处理理论和技术受到了各界越来越广泛的重视. 1.1.1 数字图像获取 图像是指自然景物存储在各种介质上的视觉信息.这类原始图像也称为模拟图像.计算机无法直接

基于Hadoop的遥感数字图像处理方法研究

基于Hadoop的遥感数字图像处理方法研究 东北师范大学   周涛 本文基于Hadoop云计算系统,主要利用并行编程框架MapReduce实现遥感数字图像的增强处理以及对增强后图像进行聚类,并与PC串行处理进行比较研究.针对遥感数字图像的整体亮度偏低.目视效果较差的特点,传统的图像增强方法在遥感数字图像上的处理无法达到人眼舒适的目视判读的效果,以及影响后续处理的问题,本文在无损增强方法的基础上进行了改进,使得原始图像的有效图像区域的无效像素点能够参与增强,实验结果表明该方法达到了很好的目视效果.

【数字图像处理】七.MFC图像增强之图像普通平滑、高斯平滑、Laplacian、Sobel、Prewitt锐化详解

       本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP图像增强处理,包括图像普通平滑.高斯平滑.不同算子的图像锐化知识.希望该篇文章对你有所帮助,尤其是初学者和学习图像处理的学生.        [数字图像处理]一.MFC详解显示BMP格式图片        [数字图像处理]二.MFC单文档分割窗口显示图片        [数字图像处理]三.MFC实现图像灰度.采样和量化功能详解  

运用Visual C#完成基本数字图像处理

visual 一.概述: 本文的实例是一个数字图像处理的应用程序,它完成的功能包括对图像颜色的翻转.对图像进行灰度处理和对图像进行增亮处理.该程序对图像进行处理部分的代码包含在一个专门的Filters类里面,通过调用该类里的静态成员函数,我们就可以实现相应的图像处理功能了.为实现图像处理,我们要对图像进行逐个象素处理.我们知道图像是由一个个的象素点组成的,对一幅图像的每个象素进行了相应的处理,最后整个图像也就处理好了.在这个过程中,我们只需对每个象素点进行相应的处理,在处理过程中却不需要考虑周围

077_《Delphi数字图像处理及高级应用》

<Delphi数字图像处理及高级应用> Delphi 教程 系列书籍 (077) <Delphi数字图像处理及高级应用> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Pdf 作者: 刘骏 出版社:科学出版社 ISBN:7030121635 上架时间:2003-11-5 出版日期:2003 年9月 开本:16开 页码:350 版次:1-1 内容简介 本书详细介绍了利用Delphi进行图像处理的技术,常用的图像格式,以及Delphi图像处理的常用方法Sca

微积分-vc 数字图像处理高手请进!

问题描述 vc 数字图像处理高手请进! 图像的梯度锐化 看到上面的公式,我叫一个晕,请问这是哪里才能学到呀?什么意思呀?还需要学习微积分吗? 解决方案 这个公式你仔细琢磨就懂了,第一个实际上是数字的差分,求得是点(i,j)的x和y方向的微分值的和,这里理解为这个像素点的梯度值.第二个就是锐化的过程,当梯度值大于某个阈值时,锐化的结果即此点的梯度值,若梯度小于那个阈值,则锐化的结果是原像素的值. 像这类比较基础的图像处理方法,建议你看一下清华大学章毓名教授写的<图像工程>. 解决方案二: 数字图

【数字图像处理】六.MFC空间几何变换之图像平移、镜像、旋转、缩放详解

       本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP图片空间几何变换,包括图像平移.图形旋转.图像反转倒置镜像和图像缩放的知识.同时文章比较详细基础,没有采用GDI+获取矩阵,而是通过读取BMP图片信息头和矩阵像素实现变换,希望该篇文章对你有所帮助,尤其是初学者和学习图像处理的学生.        [数字图像处理]一.MFC详解显示BMP格式图片        [数字图像处理]二.

【数字图像处理】三.MFC实现图像灰度、采样和量化功能详解

        本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP格式图片,并通过Bitmap进行灰度处理.图片采样和量化功能.         个人认为对初学者VC++6.0可能还是很值得学习的工具,所以采用它来讲解,而不是VS或C#.同时文章比较详细基础,希望该篇文章对你有所帮助~        [数字图像处理]一.MFC详解显示BMP格式图片        [数字图像处理]二.MFC单文

【数字图像处理】五.MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理详解

        本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP图片点运算处理,包括图像灰度线性变换.灰度非线性变换.图像阈值化处理.图像均衡化处理等知识,并结合前一篇论文灰度直方图进行展示 .同时文章比较详细基础,希望该篇文章对你有所帮助,尤其是初学者和学习图像处理的学生.        [数字图像处理]一.MFC详解显示BMP格式图片        [数字图像处理]二.MFC单文档分割窗