Red de conocimiento informático - Material del sitio web - Procesamiento de imágenes en entorno vb.net, qué usar para construir 3D

Procesamiento de imágenes en entorno vb.net, qué usar para construir 3D

En primer lugar, hablemos de la adquisición de datos de píxeles de imágenes. Las clases relacionadas con imágenes en .net se basan básicamente en GDI+. Por lo tanto, la adquisición de datos de imágenes en realidad es llamar a algunas funciones de GDI+. Esta función es LockBits. En el artículo Acceso rápido a datos de imágenes en color en vb.net, llamamos a Marshal.Copy para copiar los datos de la memoria bloqueados por LockBits en los datos y luego procesar los valores en la matriz. La razón principal de esto es que VB.NET no es bueno para acceder a la memoria directamente (funciones como Marshal.ReadByte no son adecuadas para bucles grandes). Bueno, esto causa dos malos resultados: primero: necesita almacenar 2 veces los datos de la imagen en la memoria al mismo tiempo; segundo: copiar datos de la memoria a datos y copiar datos procesados ​​de una matriz a la memoria reducirá la velocidad. Como medida de mejora, deberíamos hacer un uso completo de LockBits, que tiene un modo llamado ImageLockMode.UserInputBuffer en LockMode, que requiere que el usuario solicite memoria primero y luego llene la memoria con datos de imagen en el formato relevante. Dim BmpData como nuevo BitmapData

Stride = ((Bmp.Width * 3 + 3) And &HFFFFFFFC )

Dim PixleValue(Stride * Bmp.Height) como byte

Dim Hanlde As GCHandle = GCHandle.Alloc(PixleValue, GCHandleType.Pinned)

BmpData.Scan0 = Hanlde.AddrOfPinnedObject()