当前使用OpenCVSharp3的CSharp / VB中的RGB和GBR问题

问题描述

我正在创建一个程序,该程序使用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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...