IntPtr ptr = bmpData.Scan0;//获取位图中第一个像素数据地址
int bytes = curBitmap.Width * curBitmap.Height;
byte[] grayValues = new byte[bytes];
System.Runtime.InteropServices.Marshal.Copy(ptr, grayValues, 0, bytes);
curBitmap.UnlockBits(bmpData);//解锁系统内存中的位图像素
bool method = pc.GetMethod;
byte seg = pc.GetSeg; //取用户选择的分层数
byte[] rgbValues = new byte[bytes * 3];
Array.Clear(rgbValues, 0, bytes * 3);//将数组rgbValues中的一系列元素设为0
byte tempB;
//以下是强度分层法处理的部分
if (method == false)    
{
for (int i = 0; i < bytes; i++)
{
byte ser = (byte)(256 / seg);
 tempB = (byte)(grayValues[i] / ser);
rgbValues[i * 3 + 1] = (byte)(tempB * ser);
rgbValues[i * 3] = (byte)((seg - 1 - tempB) * ser);
rgbValues[i * 3 + 2] = 0;
}
}
     
图 4.9 分4层后的处理结果
图 4.10 分8层后的处理结果
图 4.11 分16层后的处理结果
图 4.12 分32层后的处理结果

   //灰度级-彩色变换
for (int i = 0; i < bytes; i++)
{
if (grayValues[i] < 64)
{
rgbValues[i * 3 + 2] = 0;
rgbValues[i * 3 + 1] = (byte)(4 * grayValues[i]);
rgbValues[i * 3] = 255;
}
else if (grayValues[i] < 128)
{
rgbValues[i * 3 + 2] = 0;
rgbValues[i * 3 + 1] = 255;
rgbValues[i * 3] = (byte)(-4 * grayValues[i] + 2 * 255);
}else if (grayValues[i] < 192)
{
rgbValues[i * 3 + 2] = (byte)(4 * grayValues[i] - 2 * 255);
rgbValues[i * 3 + 1] = 255;
rgbValues[i * 3] = 0;
}else
{
rgbValues[i * 3 + 2] = 255;
rgbValues[i * 3 + 1] = (byte)(-4 * grayValues[i] + 4 * 255);
rgbValues[i * 3] = 0;
}
curBitmap = new Bitmap (curBitmap.Width,curBitmap.Height,System.Drawing.Imaging.PixelFormat.Format24bppRgb);
bmpData = curBitmap.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, curBitmap.PixelFormat);
ptr = bmpData.Scan0;
System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes * 3);
curBitmap.UnlockBits(bmpData);
pictureBox1.Image = null;
Invalidate();
 
图 4.11 灰度级-彩色变换法的处理结果
总结
小结
本次毕业设计,使用的是微软开发的C#软件,它简单、现代、通用,而且面向对象。通过学习,我基本掌握了C#的语法,了解了数字图像和数字图像处理的基本原理和分类,在对灰度处理和伪彩色处理进行深入的了解之后,我掌握了灰度处理和伪彩色处理的基本原理和算法。
对于本文的中心图像处理技术——伪彩色处理,是图像处理中一个重要的分支。它处理的是灰度图像,得到的是彩色图像,但反映的并不是图像本身的色彩;它能够帮助人们更好的观察图像,突出细节。
通过本次毕业设计,我深刻的了解到,无论是复杂还是简单的程序设计,都是基于理论研究的基础上的,就像要学会跑就必须先学会走是一样的。对于伪彩色处理的研究亦是如此,不仅要了解伪彩色处理的基本原理,还要了解图像处理的基本原理和方法;在编写程序时,还要有一个完整的设计思路,这样编写程序的时候,才会有条有序。
展望
随着数字计算机的出现,数字图像处理的历史渐渐地与数字计算机的发展联系了起来,因为计算机可以快速的完成很多我们很难完成的事情,我所研究的伪彩色处理便是其中之一。我所设计的程序,不仅可以对图像进行灰度处理和伪彩色处理,还可以对图像进行缩放、雾化、反色等基本的处理,这就使得软件的使用范围变得更广。但是,在程序的设计中,还有很多不足仍需要改进。同时,通过这次毕业设计,我也认识到自己存在很多的不足之处,我会一点一点的改正,努力的提高自己的水平,使自己在编程上更进一步。
上一篇:ASP.NET音像店租赁管理系统的设计与实现+ER图+流程图
下一篇:VF薄板厂能源数据库的设计+需求分析+文献综述

基于Apriori算法的电影推荐

PHP+IOS的会议管理系统的设计+ER图

数据挖掘在电子商务中的应用

数据挖掘的主题标绘数据获取技术与实现

基于PageRank算法的网络数据分析

基于神经网络的验证码识别算法

基于网络的通用试题库系...

C#学校科研管理系统的设计

中国学术生态细节考察《...

公寓空调设计任务书

AT89C52单片机的超声波测距...

10万元能开儿童乐园吗,我...

志愿者活动的调查问卷表

医院财务风险因素分析及管理措施【2367字】

国内外图像分割技术研究现状

神经外科重症监护病房患...

承德市事业单位档案管理...