我有一个 12 位图像,我想在 Opencv 中使用,例如检测 blob 等。
该图像现在是一个 Uint16 数组。我想将它转换为 Opencv Mat 或 Iplimage。我需要这样做以便阈值和检测 blob。
我正在做的是将 ushort 数组转换为位图,然后使用 opencv 扩展转换为 Mat,见下文。
ushort[,] red = new ushort [480,640];
//Grab image in to ushort array
//..
bmpred = U16ArrayToBitmap(red);
Mat redMat = new Mat();
redMat = OpenCvSharp.Extensions.BitmapConverter.ToMat(bmpred);
现在 redMat,我的 Mat 图像是 U8C4,据我了解它的 4 Chanel Unsigned 8 位。这对我不起作用,因为我想使用所有 12 位!
是否可以将 ushort 数组或位图转换为 16 位灰度 Mat 或 iplimage?
谢谢!