“数字图像处理”类的基本要求.docxVIP

  • 14
  • 0
  • 约4.63千字
  • 约 8页
  • 2017-02-06 发布于重庆
  • 举报
“数字图像处理”类的基本要求

数字图像处理(基本功能实现)((12月15日前提交))1、编制一个具有Windows图形界面的应用程序(VB.Net, or C#, or C++)2、针对数字图像处理的基本功能,设计并实现一个图像类,把图像文件操作、数据存储及管理、基本的图像处理功能包含在该类中,能处理8位灰度图像、8位索引彩色图像、24位真彩色图像等。VB.NET环境下的基本内容:部分成员变量 Private BMap As Bitmap Bitmap是VB.NET和C#中处理图像的基础类,用于处理由像素数据定义的图像的对象 Private mImageName As String 记录打开图像的文件 Private mPixels As Long, mSize As Long 记录图像的像素个数及存储数据的内存大小(以字节为单位) Private mWidth As Long, mHeight As Long 图像宽度、高度 Private ImageB() As Byte 存储灰度图像数据,一维数组存储。对于8位图像,一个像素 即是一个字节。每行存储的字节数必须是4的整倍数,需要时添加适当字节。与文件中记录的内容完全一致部分成员函数 Public Function ReadImageFile(Optional ByVal FileName As String = ) As Integer If FileName = Or Dir(FileName) = Then If mImageName = Then Exit Function End IfBMap是一个Bitmap对象,dim BMap as Bitmap If Not BMap Is Nothing Then BMap.Dispose() 如果图像对象已经存在,清除对象 BMap = New Bitmap(FileName) 由图像文件创建Bitmap对象 getBitMapData() 读取BMap对象中的图像数据到数组 putBitMapData() xWmin = 0 yWmin = 0 xWmax = BMap.Width - 1 取得pictureBox在容器中的宽度 yWmax = BMap.Height - 1 取得pictureBox在容器中的高度 mImageName = FileName RaiseEvent ImageDataChanged() End Function Private Function getBitMapData() As Boolean 从BitMap对象里获取图像数据 在实际处理程序中一般不采用拷贝备份的做法,可以通过获得的数据指针,直接操作就可以了。 过程是:锁定内存,获取数据的起始地址,根据图像类型操作数据,结束锁定 If BMap Is Nothing Then Return False 图像对象必须存在,完成实例化 Dim i As Integer Dim rect As New Rectangle(0, 0, BMap.Width, BMap.Height) 设置锁定图像范围的矩形 Dim bmpData As System.Drawing.Imaging.BitmapData = BMap.LockBits(rect, _ Drawing.Imaging.ImageLockMode.ReadOnly, BMap.PixelFormat) 锁定图像数据 Get the address of the first line. Dim ptr As IntPtr = bmpData.Scan0 获得图像数据的起始地址 If BMap.PixelFormat = Imaging.PixelFormat.Format8bppIndexed Then 如果图像是8位索引图像,256彩色,256灰度图像 mWidth = BMap.Width 获得图像宽度 mHeight = BMap.Height 获得图像高度 mFwidth = ((mWidth + 3) \ 4) * 4 由于图像数据是每行的记录字节数为4的整倍数,估作此调整计算 mWidth + 3 mFwidth = mWidth mSize = mFwidth * mHeight 图像数据的大小 mPixels = mWidth * mHeight 图像总像素个数 ReDim ImageB(mSize - 1) 定义一个一维数组,保存图像数据,用于图像数据操作 System.Runtime.InteropServices.Marshal.Copy(ptr, ImageB, 0, mSize) 拷贝数据 mPalette

文档评论(0)

1亿VIP精品文档

相关文档