问题描述
我正在创建一个程序,该程序使用Sapera LT从相机中拾取图像,但这并不是一个真正的Sapera问题。我正在使用VB,这是一些代码,它将(内存中的)图像数据转换为System.Drawing.Image:
Dim w As Integer = Buffer.Width
Dim h As Integer = Buffer.Height
Dim opencvtype As Integer
opencvtype = MatType.CV_8UC3 'use with RGB888
Dim pBuf As IntPtr
Buffer.GetAddress(pBuf)
Dim mt As New Mat(h,w,opencvtype,pBuf)
Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(mt,Imaging.PixelFormat.Format24bppRgb)
所以实际上我只需要一个步骤,但是有两个步骤,但是我不知道如何将数据(通过指针访问)直接转换为系统。绘制图像
当我运行上面的代码时,它可以工作,但是OpenCV对象是GBR mat对象,而System.Drawing.Image对象是RGB,所以最终得到棕褐色调的结果,我不想这样做。 / p>
有人能看到我如何消除OpenCV步骤,而直接将数据直接读取到system.drawing.image对象中吗?我使用了OPenCVSharp代码,因为那是我从制造商那里获得的唯一用于访问图像数据的示例
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)