当前位置: 首页 > article >正文

EmguCV学习笔记 VB.Net 11.4 图像分类

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。

教程VB.net版本请访问:EmguCV学习笔记 VB.Net 目录-CSDN博客

教程C#版本请访问:EmguCV学习笔记 C# 目录-CSDN博客

笔者的博客网址:https://blog.csdn.net/uruseibest

教程配套文件及相关说明以及如何获得pdf教程和代码,请移步:EmguCV学习笔记

学习VB.Net知识,请移步: vb.net 教程 目录_vb中如何用datagridview-CSDN博客

 学习C#知识,请移步:C# 教程 目录_c#教程目录-CSDN博客

 

11.4 图像分类

GoogleLeNet是由Google团队提出的一种深度卷积神经网络,它在图像分类任务中表现良好,可以处理大规模的图像数据集,并获得较高的准确率。GoogleLeNet在ILSVRC 2014图像分类比赛中取得了较好的成绩。

【代码位置:frmChapter11】Button2_Click

    '图像分类:Googlenet

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        '字符串数组保存对象分类名称

        Dim classnames() As String

        '对象分类,googlenet分类文件提供了1000类对象

        '将每一行(对象)加入数组

        classnames = File.ReadAllLines("C:\learnEmgucv\googlenet\label.txt")

        '需要测试的图像文件

        Dim m As New Mat("C:\learnEmgucv\tower.jpg", ImreadModes.Color)

        Dim hm As Integer = m.Height

        Dim wm As Integer = m.Width

        Dim net As Dnn.Net

        '读取网络结构文件(bvlc_googlenet.prototxt

        '和模型参数文件(bvlc_googlenet.caffemode

        net = DnnInvoke.ReadNetFromCaffe("C:\learnEmgucv\googlenet\bvlc_googlenet.prototxt",

                                           "C:\learnEmgucv\googlenet\bvlc_googlenet.caffemodel")

        '设置后端使用OpenCV

        net.SetPreferableBackend(Dnn.Backend.OpenCV)

        '设置计算模型的硬件设备

        net.SetPreferableTarget(Target.Cpu)

        Dim blob As Mat

        '转换为网络输入的blob格式

        blob = DnnInvoke.BlobFromImage(m, 1.0, New Drawing.Size(224, 224), New MCvScalar(127.5, 127.5, 127.5), False, False)

        '设置输入数据

        net.SetInput(blob)

        Dim mout As New Mat

        '进行模型推理

        mout = net.Forward()

        '最大值

        Dim maxValue As Double

        '最大坐标点

        Dim maxPoint As Point

        '在使用Googlenet进行图像分类时,

        '最大值表示是某类对象的置信度(可能性)百分比

        '最大值所对应坐标x即对象序号

        CvInvoke.MinMaxLoc(mout, Nothing, maxValue, Nothing, maxPoint)

        CvInvoke.PutText(m, "result:" & classnames(maxPoint.X) & "  " & maxValue,

                          New Point(10, 20), FontFace.HersheyDuplex, 0.8, New MCvScalar(0, 0, 255))

        ImageBox1.Image = m

End Sub

输出结果如下图所示:

 

图11-1 获得图像分类


http://www.kler.cn/a/300614.html

相关文章:

  • upload-labs靶场练习
  • 诡异的Spring @RequestBody驼峰命名字段映射失败为null问题记录
  • 【王树森搜索引擎技术】概要01:搜索引擎的基本概念
  • 【tailscale 和 ssh】当服务器建立好节点,但通过客户端无法通过 ssh 连接
  • SQL ON与WHERE区别
  • LDD3学习7--硬件接口I/O端口(以short为例)
  • 如何使用 PowerShell 脚本来自动化 Windows 开发流程的教程(包括理论介绍和实践示例)
  • FPGA设计-使用MicroBlaze的Boot Loader的注意事项
  • Leetcode3271. 哈希分割字符串
  • 论文阅读:RGBD GS-ICP SLAM
  • 【题解】CF2008G
  • 解锁数据的秘密武器:PCA带你走进降维新世界
  • 《黑神话:悟空》被“罕见”网络攻击联想个人网络和数据安全防范
  • Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密
  • AIGC大模型扩图:Sanster/IOPaint(4)
  • 大模型岗位招聘数据分析及可视化
  • 免费爬虫软件“HyperlinkCollector超链采集器v0.1”
  • Day8 | Java框架 | Maven
  • 【EI稳定,马来亚大学主办】2024年计算机与信息安全国际会议(WCCIS 2024,9月27-29)
  • Mac M芯片上安装统信UOS 1070arm64虚拟机
  • React实现虚拟列表的优秀库介绍
  • pyecharts可视化数据大屏【详细教程】
  • Flutter之SystemChrome全局设置
  • hpl 的测试配置文件 HPL.dat 的内容说明
  • Eclipse WEB项目在IDEA中使用
  • 《系统安全架构设计及其应用》写作框架,软考高级系统架构设计师