视线语音鼠标 4 C#图像的读取和显示
2011-02-22 21:08
344 查看
读取图像的rgb信息,做视频流的话,不用指针速度是无法忍受的。
用rectangle框选,转为bitmapData,用指针读,注意颜色顺序是b,g,r。
显示的话也是差不多的,我的图像显示是二值图(Seg存的),返回bitmap,到时可用pictureBox什么的显示就行了。
不多说了,上代码。
用rectangle框选,转为bitmapData,用指针读,注意颜色顺序是b,g,r。
显示的话也是差不多的,我的图像显示是二值图(Seg存的),返回bitmap,到时可用pictureBox什么的显示就行了。
不多说了,上代码。
public void InIt(Bitmap Source) { int iWidth = Source.Width; int iHeight = Source.Height; Rectangle rect = new Rectangle(0, 0, iWidth, iHeight); BitmapData bmpData = Source.LockBits(rect, ImageLockMode.ReadWrite, Source.PixelFormat); int r, g, b; IntPtr iPtr = bmpData.Scan0; unsafe //启动不安全代码 { byte* Ptr = (byte*)(void*)iPtr; int srcOffset = bmpData.Stride - iWidth * 4; for (int j = 0; j < iHeight; j++) { for (int i = 0; i < iWidth; i++, Ptr += 4) { b = (int)Ptr[0]; g = (int)Ptr[1]; r = (int)Ptr[2]; } Ptr += srcOffset; } } Source.UnlockBits(bmpData); } public static Bitmap Display(double[,] Seg) { int iWidth = Seg.GetLength(0); int iHeight = Seg.GetLength(1); Bitmap Result = new Bitmap(iWidth, iHeight, System.Drawing.Imaging.PixelFormat.Format24bppRgb); Rectangle rect = new Rectangle(0, 0, iWidth, iHeight); BitmapData bmpData1 = Result.LockBits(rect, ImageLockMode.ReadWrite, Result.PixelFormat); IntPtr iPtr1 = bmpData1.Scan0; int iBytes = iWidth * iHeight * 3; byte[] PixelValues = new byte[iBytes]; int iPoint = 0; for (int j = 0; j < iHeight; j++) { for (int i = 0; i < iWidth; i++, iPoint += 3) { if (Seg[i, j] > 0) { PixelValues[iPoint] = Convert.ToByte(255); PixelValues[iPoint + 1] = Convert.ToByte(255); PixelValues[iPoint + 2] = Convert.ToByte(255); } else { PixelValues[iPoint] = Convert.ToByte(0); PixelValues[iPoint + 1] = Convert.ToByte(0); PixelValues[iPoint + 2] = Convert.ToByte(0); } } } Marshal.Copy(PixelValues, 0, iPtr1, iBytes); Result.UnlockBits(bmpData1); return Result; }
相关文章推荐
- 读取图片,并通过鼠标交互,在图片上选择一块矩形区域,然后把这个矩形区域的子图像显示出来
- 用opencv读取图像的每个像素值,鼠标点击获取每一个点,并显示像素
- 视线语音鼠标 5 C#图像缩放
- kinect 开发入门——读取深度信息和显示深度信息图像
- MATLAB读取黑白图像显示却是黑色,24位深转8位深黑白图像解决方法
- vs2008 MFC程序 读取显示图像、更改背景图像
- qt多线程读取海康摄像机图像,处理并显示
- 图像的读取显示以及保存----《opencv-python中文教程》
- 用opencv读取图像,并且显示
- 利用OpenCV鼠标事件设置函数setMouseCallback显示图像像素坐标值!
- C#开发微信 二维码鼠标滑动 图像显示隐藏效果(推荐)
- 读取npz,并显示图像
- 图像读取、转为灰度图像、均值平滑、显示保存操作
- 【第二课】读取并显示图像
- 读取单通道图像中的像素,显示具体位置和灰度值
- 在MFC中利用HALCON读取图像,并显示在主窗口和picture空间中
- Matlab读取图像,显示H、S、V分量
- 第一个OpenCV读取图像并显示
- VTK中各种图像格式的读取与显示
- Android从文件读取图像显示的效率问题