halcon SVM 缺陷检测分类

一、概述

训练数据

二、算子解释

compactness

Halcon 算子 compactness_halcon compactness-CSDN博客

*计算输入区域的紧凑度
compactness (Region, Compactness)
 原理解释

convexity  每个输入区域的凸度

Halcon 算子 convexity_halcon convexity-CSDN博客

*计算每个输入区域的凸度
convexity (Region, Convexity)   

 原理解释
moments_region_central_invar 计算区域的四个矩

 

三、halcon 代码


get_system ('image_dir', HalconImages)
get_system ('operating_system', OS)
if (OS{0:2} == 'Win')
    tuple_split (HalconImages, ';', HalconImages)
else
    tuple_split (HalconImages, ':', HalconImages)
endif
ReadOK := false
for k := 0 to |HalconImages| - 1 by 1
    try
        read_image (Image, HalconImages[k] + '/halogen_bulb/halogen_bulb_01.png')
        ReadPath := HalconImages[k] + '/halogen_bulb/'
        ReadOK := true
        break
    catch (Exception)
    endtry
endfor
if (not ReadOK)
    disp_message (WindowHandle, 'Could not find the images in $HALCONIMAGES', 'window', 12, 12, 'black', 'true')
    stop ()
endif
read_image (Image, 'halogen_bulb/halogen_bulb_01.png')
get_image_pointer1 (Image, Pointer, Type, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width / 2, Height / 2, 'black', WindowHandle)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
* 
ClassNames := ['good','bad','none']
Colors := ['forest green','red','red']
Nu := 0.05
KernelParam := 0.02
* 
* Create an SVM classifier
*NumFeatures 输入变量数
*KernelType  :内核类型  线性”,“多项式均匀”,“多项式不均匀”,“ rbf”
*KernelParam :内核参数  内核函数的附加参数。如果是RBF内核,则的值 。对于多项式核,度
*Nu      SVM的正则化常数。
*NumClasses   类数。
*Mode  SVM的模式    “新颖性检测”,“一个对所有”,“一个对一个”
*Preprocessing   用于转换特征向量的预处理类型。
*NumComponents  预处理参数:变换后的特征数量
*SVMHandle  SVM句柄。
create_class_svm (7, 'rbf', KernelParam, Nu, |ClassNames|, 'one-versus-one', 'principal_components', 7, SVMHandle)
* 
* Add samples
* 这里是只训练好的 还有 坏的的以及那个none 的
add_samples_to_svm (ClassNames, SVMHandle, WindowHandle, ReadPath)
*add_samples_to_svm 函数实现
* for ClassNumber := 0 to |ClassNames| - 1 by 1
*     list_files (ReadPath + ClassNames[ClassNumber], 'files', Files)
*     Selection := regexp_select(Files,'.*[.]png')
*     for Index := 0 to |Selection| - 1 by 1
*         read_image (Image, Selection[Index])
*         dev_display (Image)
        * 'Add Samples...', -1
*         threshold (Image, Region, 0, 40)
*         calculate_features (Region, Features)
*         add_sample_class_svm (SVMHandle, Features, ClassNumber)
*     endfor
* endfor
 *==========================================
 *calculate_features 的实现
*  area_center (Region, Area, Row, Column)
* 计算输入区域的紧凑度
* compactness (Region, Compactness)
* 四个不变的矩
* moments_region_central_invar (Region, PSI1, PSI2, PSI3, PSI4)
*计算每个输入区域的凸度
* convexity (Region, Convexity)   
* Features := real([Area,Compactness,PSI1,PSI2,PSI3,PSI4,Convexity])
* return ()
        
return ()
dev_clear_window ()
* 
* Train the classifier
disp_message (WindowHandle, 'Training...', 'window', 12, 12, 'black', 'true')
*训练
*Epsilon (input_control) 精度
*TrainMode    'add_sv_to_train_set', 'default'
train_class_svm (SVMHandle, 0.001, 'default')
disp_message (WindowHandle, 'Training completed', 'window', 12, 12, 'black', 'true')
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
* 
* Classify halogen bulbs

classify_regions_with_svm (SVMHandle, Colors, ClassNames, ReadPath)
* 
    *list_files (ReadPath, ['files','recursive'], Files)
    *Selection := regexp_select(Files,'.*[.]png')
    *read_image (Image, Selection[0])
    *dev_close_window ()
    *get_image_size (Image, Width, Height)
    *dev_open_window (0, 0, Width / 2, Height / 2, 'black', WindowHandle)
    *set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
    *for Index := 0 to |Selection| - 1 by 1
    *    read_image (Image, Selection[Index])
    *    threshold (Image, Region, 0, 40)
    *    calculate_features (Region, Features)
    *    *特征
    *    classify_class_svm (SVMHandle, Features, 1, Class)
    *    dev_display (Image)
    *    dev_set_color (Colors[Class])
    *    dev_display (Region)
    *    disp_message (WindowHandle, 'Classified as:' + ClassNames[Class], 'window', 12, 12, 'black', 'true')
    *    disp_continue_message (WindowHandle, 'black', 'true')
    *    stop ()
    *endfor
    *dev_display (Image)
    *return ()
* Clear the classifier from memory
clear_class_svm (SVMHandle)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/658315.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java大学城水电管理系统源码(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的大学城水电管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 大学城水电管理系统的…

VMware vSphere 8.0 Update 2c 下载 - 企业级工作负载平台

VMware vSphere 8.0 Update 2c 下载 - 企业级工作负载平台 ESXi 8.0U2 & vCenter Server 8.0U2 请访问原文链接:https://sysin.org/blog/vmware-vsphere-8-u2/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org …

长效IP和短效IP的使用指南分享

随着网络技术的发展,代理IP已经成为许多人在网络活动中不可或缺的工具。 代理IP不仅有助于保护用户的真实IP地址,保护用户的使用隐私,还可以帮助用户提升网络访问的速度等。 然而,在挑选代理IP时,用户常常会面临一个…

【python脚本】修改目标检测的xml标签(VOC)类别名

需求: 在集成多个数据集一同训练时,可能会存在不同数据集针对同一种目标有不同的类名,可以通过python脚本修改数据内的类名映射,实现统一数据集标签名的目的。 代码: # -*- coding: utf-8 -*- # Time : 2023/9/11 1…

【测试】PostMan介绍_安装

1、介绍 1.1简介 Postman是一款非常流行的API调试工具,用于构建和使用 API 的 API 平台。Postman 简化了 API 生命周期的每个步骤并简化了协作它能够模拟用户发起的各类HTTP请求,将请求数据发送至服务端,并获取对应的响应结果。通过Postman…

Discourse 安装后安全配置考虑

防火墙 防火墙是肯定要装机器上的,并且端口只开放了 443 和 22。 22 的端口还只限制了部分 IP 段的访问,通常只允许给内部网络的 SSH。 Web 服务应该只走 443,80 端口的做好自动重定向到 443。 CloudFlare 可以用一个 CloudFlare 的负载…

教育小程序的性能优化:从前端到后端的综合提升策略

随着教育小程序的普及,其性能直接影响用户体验和教学效果。本文将从前端到后端,详细探讨教育小程序的性能优化策略,帮助开发者打造高效、流畅的教育应用。 一、前端性能优化策略 代码优化 减少HTTP请求:合并CSS、JavaScript文件…

动手学深度学习4.5 权重衰减-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记,以及对课后练习的一些思考,自留回顾,也供同学之人交流参考。 本节课程地址:权重衰退_哔哩哔哩_bilibili 本节教材地址:4.5. 权重衰减 — 动手学深度学习 2.0.0 do…

对比表征学习(一)Contrastive Representation Learning

对比表征学习(二)Sentence Embedding 主要参考翁莉莲的Blog,本文主要聚焦于对比损失函数 对比表示学习(Contrastive Representation Learning)可以用来优化嵌入空间,使相似的数据靠近,不相似的数…

src挖掘技巧--别人能挖到,你不来看看吗?

漏洞类型:拒绝服务漏洞 原理:通过控制修改验证码的长和宽,请求大量资源,导致拒绝服务漏洞,可以通过数据包的返回量值和返回时间来判断是否存在该漏洞。 实战报告 在获取验证码的时候进行抓包 右键打开验证码图片&am…

关于Linux软链你必须知道的实用知识点(非常详细)零基础入门到精通,收藏这一篇就够了

背景 Linux中的软链,是非常强大的工具,如果只是一知半解,在解决问题时一定会让你栽跟头或者浪费大量的时间。非常有必要提前掌握Linux软链的几个实用的知识点。 分析 软链是什么? 在Linux中,软链接(sym…

【CALayer-CALayer的基本属性 Objective-C语言】

一、接下来,我们来说这个Layer啊, 1.首先,Layer能接触到的,就是我们之前说截图啊,就是我们self.view里面,有一个layer属性, [self.view.layer renderInContext:(CGContextRef t)]; 那个里面,有一个layer属性,然后呢,是CALayer类型的, 接下来,我们就来学习一…

帆软报表点击表格给数据集传递参数案例

一、效果 有四个模块,分别是采购总金额,采购总数量,采购合同数量,采购合同申请数量通过点击单元格上的月份,展示不同的月份数据,进行单元格和表格之间的联动 二、准备好数据库表和展示数据内容 2.1 建表 …

【Java EE】网络原理——HTTP响应

目录 1.认识“状态码”(status code) 1.1 200 OK 1.2 404 Not Found 1.3 403 Forbodden 1.4 Method Not Allowed 1.5 Internal Sever Error 1.6 504 Gsteway Timeout 1.7 Move temporarily 1.8 Moved Permanently 1.9状态码小结 2.认识响应“报…

c语言 分而治之(施特拉森矩阵乘法)

给定两个大小分别为 nxn 的方阵 A 和 B&#xff0c;求它们的乘法矩阵。 朴素方法&#xff1a;以下是两个矩阵相乘的简单方法。 void multiply(int A[][N], int B[][N], int C[][N]) { for (int i 0; i < N; i) { for (int j 0; j < N; j) { …

【Python特征工程系列】利用SHAP进行特征重要性分析-决策树模型为例(案例+源码)

这是我的第290篇原创文章。 一、引言 SHAP 属于模型事后解释的方法&#xff0c;它的核心思想是计算特征对模型输出的边际贡献&#xff0c;再从全局和局部两个层面对“黑盒模型”进行解释。SHAP构建一个加性的解释模型&#xff0c;所有的特征都视为“贡献者”。 对于每个预测样…

北京证券公司港股通交易佣金手续费最低是多少?万0.8?港股通纳入规则是怎么样的?

港股通交易佣金概述 港股通的交易佣金可能会因证券公司和投资者的不同而有所差异。 北京证券公司的港股通交易佣金最低可能万分之零点八&#xff08;0.008%&#xff09;&#xff0c;但这需要投资者与证券公司客户经理了解&#xff0c;进行沟通和申请。 一般来说&#xff0c;…

树莓派部署harbor_arm64

文章目录 树莓派4b部署Harbor-arm64版本docker-compose维护命令访问harbor 192.168.1.111认用户名密码admin/Harbor12345 树莓派4b部署Harbor-arm64版本 harbor-arm版本 部署&#xff1a;参考 wget https://github.com/hzliangbin/harbor-arm64/releases/download/v1.9.3/ha…

常用压力、流量单位换算表

一、压力为单位面积所承受的力 压力&#xff1a;绝对压力 、表压力 、大气压力。相互关系&#xff1a;绝对压力表压力大气压力 绝对压力:当压力表示与完全真空的差。测量处的实际压力。 表压力:当表示其气体数值与该地域大气压力的差值。 大气压力&#xff1a;由大气重量所…

网吧|基于SprinBoot+vue的网吧管理系统(源码+数据库+文档)

网吧管理系统 目录 基于SprinBootvue的网吧管理系统 一、前言 二、系统设计 三、系统功能设计 1 管理员功能模块 2 网管功能模块 3 会员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#…