C# OpenVino Yolov8 Detect 目标检测

news/2024/10/17 23:35:32/

效果

项目 

代码

using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using static System.Net.Mime.MediaTypeNames;namespace OpenVino_Yolov8_Detect
{public partial class Form1 : Form{public Form1(){InitializeComponent();}string fileFilter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";string image_path = "";String startupPath;DateTime dt1 = DateTime.Now;DateTime dt2 = DateTime.Now;String model_path;string classer_path;StringBuilder sb = new StringBuilder();Core core;Mat image;private void button1_Click(object sender, EventArgs e){OpenFileDialog ofd = new OpenFileDialog();ofd.Filter = fileFilter;if (ofd.ShowDialog() != DialogResult.OK) return;pictureBox1.Image = null;image_path = ofd.FileName;pictureBox1.Image = new Bitmap(image_path);textBox1.Text = "";image = new Mat(image_path);}private void Form1_Load(object sender, EventArgs e){startupPath = System.Windows.Forms.Application.StartupPath;model_path = startupPath + "\\yolov8n.onnx";classer_path = startupPath + "\\det_lable.txt";core = new Core(model_path, "CPU");}private void button2_Click(object sender, EventArgs e){if (image_path == ""){return;}// 配置图片数据int max_image_length = image.Cols > image.Rows ? image.Cols : image.Rows;Mat max_image = Mat.Zeros(new OpenCvSharp.Size(max_image_length, max_image_length), MatType.CV_8UC3);Rect roi = new Rect(0, 0, image.Cols, image.Rows);image.CopyTo(new Mat(max_image, roi));float[] result_array = new float[8400 * 84];float[] factors = new float[2];factors = new float[2];factors[0] = factors[1] = (float)(max_image_length / 640.0);byte[] image_data = max_image.ImEncode(".bmp");//存储byte的长度ulong image_size = Convert.ToUInt64(image_data.Length);// 加载推理图片数据core.load_input_data("images", image_data, image_size, 1);// 模型推理dt1 = DateTime.Now;core.infer();dt2 = DateTime.Now;// 读取推理结果result_array = core.read_infer_result<float>("output0", 8400 * 84);DetectionResult result_pro = new DetectionResult(classer_path, factors);Mat result_image = result_pro.draw_result(result_pro.process_result(result_array), image.Clone());pictureBox2.Image = new Bitmap(result_image.ToMemoryStream());textBox1.Text = "耗时:" + (dt2 - dt1).TotalMilliseconds + "ms";}private void Form1_FormClosing(object sender, FormClosingEventArgs e){core.delet();}}
}

完整Demo下载


http://www.ppmy.cn/news/1103813.html

相关文章

9月6日上课内容 redis高可用

RDB 持久化 RDB持久化是指在指定的时间间隔内将内存中当前进程中的数据生成快照保存到硬盘(因此也称作快照持久化)&#xff0c;用二进制压缩存储&#xff0c;保存的文件后缀是rdb&#xff1b;当Redis重新启动时&#xff0c;可以读取快照文件恢复数据。 1. 触发条件 RDB持久化…

【笔试强训选择题】Day39.习题(错题)解析

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;笔试强训选择题 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;&#xff…

FirmAFL

FirmAFL使用并改进了Firmdyne模拟方式&#xff0c;并利用AFL对IoT固件实施高通量灰盒Fuzzing。 一、项目简介 FIRM-AFL 是 第一个针对物联网固件的高吞吐量灰盒模糊测试器。 支持mipsel、mipseb和armel三种CPU架构 &#xff0c;涵盖Firmadyne数据库中90.2%的固件。 FIRM-AFL 解…

橘子称重问题C++

问题 A: 橘子称重 时间限制: 1.000 Sec 内存限制: 16 MB提交 状态 题目描述 学校买回来一大箱橘子&#xff0c;有m个&#xff08;m>100 && m < 1000&#xff09;&#xff0c;橘子大小比较均匀&#xff0c;学校想称一下总共有多重&#xff0c;发现大称坏掉了还没…

《Web安全基础》04. 文件操作安全

web 1&#xff1a;文件操作安全2&#xff1a;文件上传漏洞2.1&#xff1a;简介2.2&#xff1a;防护与绕过2.3&#xff1a;WAF 绕过2.3.1&#xff1a;数据溢出2.3.2&#xff1a;符号变异2.3.3&#xff1a;数据截断2.3.4&#xff1a;重复数据 3&#xff1a;文件包含漏洞4&#xf…

FxFactory Pro v8.0.10(fcpx视频特效)

FxFactory Pro是一款fcpx视频特效和插件管理工具&#xff0c;可以在Adobe Premiere Pro、Final Cut Pro、Motion等软件中使用。下面是FxFactory Pro的使用方法&#xff1a; 下载并安装FxFactory Pro&#xff1a;从官方网站下载FxFactory Pro安装程序&#xff0c;并按照提示进行…

【Day-34慢就是快】代码随想录-二叉树-搜索树中的众数

给定一个有相同值的二叉搜索树&#xff08;BST&#xff09;&#xff0c;找出 BST 中的所有众数&#xff08;出现频率最高的元素&#xff09;。 思路 递归法 既然是搜索树&#xff0c;中序遍历就是有序数组。 如何不利用数组&#xff0c;直接在树上进行操作呢&#xff1f; 弄…

第n+2次安装前端环境-nvm管理包工具-配置react环境

搭建前端环境-nvm搭建-配置react环境-前提准备 我之前电脑实在是没办法用nvm搭建前端环境&#xff01;恼火&#xff0c;只能推倒重来了。 首先就先去将自己的电脑里面的原来的nvm软件删除了。除此之外还要看看有没有之前单独安装过nodejs的&#xff0c;如果之前单独安装过那也…