C#彩色图像的伪色空间处理程序设计(15)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

C#彩色图像的伪色空间处理程序设计(15)


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#的语法,了解了数字图像和数字图像处理的基本原理和分类,在对灰度处理和伪彩色处理进行深入的了解之后,我掌握了灰度处理和伪彩色处理的基本原理和算法。
对于本文的中心图像处理技术——伪彩色处理,是图像处理中一个重要的分支。它处理的是灰度图像,得到的是彩色图像,但反映的并不是图像本身的色彩;它能够帮助人们更好的观察图像,突出细节。
通过本次毕业设计,我深刻的了解到,无论是复杂还是简单的程序设计,都是基于理论研究的基础上的,就像要学会跑就必须先学会走是一样的。对于伪彩色处理的研究亦是如此,不仅要了解伪彩色处理的基本原理,还要了解图像处理的基本原理和方法;在编写程序时,还要有一个完整的设计思路,这样编写程序的时候,才会有条有序。
展望
随着数字计算机的出现,数字图像处理的历史渐渐地与数字计算机的发展联系了起来,因为计算机可以快速的完成很多我们很难完成的事情,我所研究的伪彩色处理便是其中之一。我所设计的程序,不仅可以对图像进行灰度处理和伪彩色处理,还可以对图像进行缩放、雾化、反色等基本的处理,这就使得软件的使用范围变得更广。但是,在程序的设计中,还有很多不足仍需要改进。同时,通过这次毕业设计,我也认识到自己存在很多的不足之处,我会一点一点的改正,努力的提高自己的水平,使自己在编程上更进一步。 (责任编辑:qin)