[C#] 纯文本查看 复制代码 //保存到本地,再读取到pictureBox有延迟
//int retSaveFile = dm.AiYoloDetectObjectsToFile(0, 0, 2000, 2000, (float)0.5, (float)0.45, "1.bmp", 0);
//返回指针DataBmp
int ret = dm.AiYoloDetectObjectsToDataBmp(0, 0, 2000, 2000, (float)0.5, (float)0.45, out int data, out int size, 0);
Trace.WriteLine("ret:" + ret);
Trace.WriteLine("size:" + size);
unsafe
{
int x1 = 0, y1 = 0, x2 = 100, y2 = 100;
// 将 void* 类型的数据指针转换为 IntPtr
IntPtr bmpDataPtr = new IntPtr(data);
// 创建 Bitmap 对象
Bitmap bmp = new Bitmap(x2 - x1, y2 - y1, PixelFormat.Format24bppRgb);
// 检查 Bitmap 对象的有效性
if (bmp == null)
{
Console.WriteLine("无法创建位图对象.");
return;
}
// 保存图片到临时文件
string tempFilePath = System.IO.Path.GetTempFileName();
bmp.Save(tempFilePath);
// 获取文件信息
FileInfo fileInfo = new FileInfo(tempFilePath);
long fileSizeBytes = fileInfo.Length;
Trace.WriteLine($"图片占用磁盘空间为: {fileSizeBytes} 字节");
// 删除临时文件
File.Delete(tempFilePath);
pictureBox2.Image = bmp;
}
--------------------------
请问 AiYoloDetectObjectsToDataBmp 中返回的 data 变参指针:如何加载到 pictureBox2.Image 中,上面是我问了gpt后胡乱写的,pictureBox2里面是黑的,没弄对.
看了一天教程,很懵,还是来这里求助,请老师们指点.谢谢!
--------------------------
输出:
ret:1
size:752430
图片占用磁盘空间为: 159 字节
大象,0.709,49,302,68,74|大象,0.591,246,326,60,60
x:49,y:302
--------------------------
问题相关截图:
[Visual Basic .NET] 纯文本查看 复制代码 函数简介:
需要先加载Ai模块. 在指定范围内检测对象,把结果输出到BMP图像数据.用于二次开发.
函数原型:
long AiYoloDetectObjectsToDataBmp(x1, y1, x2, y2,prob,iou,data,size,mode)
参数定义:
x1 整形数:区域的左上X坐标
y1 整形数:区域的左上Y坐标
x2 整形数:区域的右下X坐标
y2 整形数:区域的右下Y坐标
prob双精度浮点数: 置信度,也可以认为是相似度. 超过这个prob的对象才会被检测
iou 双精度浮点数: 用于对多个检测框进行合并. 越大越不容易合并(很多框重叠). 越小越容易合并(可能会把正常的框也给合并). 所以这个值一般建议0.4-0.6之间.
可以在Yolo综合工具里进行测试.
data 变参指针:返回图片的数据指针
size 变参指针:返回图片的数据长度
mode 整形数: 0表示绘制的文字信息里包含置信度. 1表示不包含.
返回值:
整形数:
0 : 失败
1 : 成功
以下是在e语言中的示例:
变量名 | 类 型 | 静态 | 数组 | 备 注 | data | 整数型 | | | size | 整数型 | | |
dm. 数值方法 (“AiYoloDetectObjectsToDataBmp”, 0, 0, 100, 200,0.5,0.45, data, size,0 )图片框1.图片 = 指针到字节集 (data, size )
|