## halcon SVM 缺陷检测分类

### 二、算子解释

#### compactness

Halcon 算子 compactness_halcon compactness-CSDN博客

``````*计算输入区域的紧凑度
compactness (Region, Compactness)``````

#### convexity  每个输入区域的凸度

Halcon 算子 convexity_halcon convexity-CSDN博客

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

## 三、halcon 代码

``````
get_system ('image_dir', HalconImages)
get_system ('operating_system', OS)
if (OS{0:2} == 'Win')tuple_split (HalconImages, ';', HalconImages)
elsetuple_split (HalconImages, ':', HalconImages)
endif
for k := 0 to |HalconImages| - 1 by 1tryread_image (Image, HalconImages[k] + '/halogen_bulb/halogen_bulb_01.png')ReadPath := HalconImages[k] + '/halogen_bulb/'ReadOK := truebreakcatch (Exception)endtry
endfor
if (not ReadOK)disp_message (WindowHandle, 'Could not find the images in \$HALCONIMAGES', 'window', 12, 12, 'black', 'true')stop ()
endif
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')
*
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)
*
* 这里是只训练好的 还有 坏的的以及那个none 的
* 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
*         dev_display (Image)* 'Add Samples...', -1
*         threshold (Image, Region, 0, 40)
*         calculate_features (Region, Features)
*     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) 精度
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 bulbsclassify_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)``````

### 《SpringBoot》系列文章目录

SpringBoot是由Pivotal团队提供的全新框架&#xff0c;旨在简化新Spring应用的初始搭建以及开发过程。以下是一些关于SpringBoot的详细介绍&#xff1a; 设计目的&#xff1a;SpringBoot通过特定的方式来进行配置&#xff0c;使得开发人员不再需要定义样板化的配置&#xff0c…

### Hexo博客部署到云服务器

1、本地搭建hexo 本地搭建hexo过程详见hexo官网&#xff0c;步骤比较详细&#xff0c;按照步骤搭建即可 2、hexo主题 我使用的Butterfly主题&#xff0c;主题配置请查看Butterfly安装文档 3、部署到云服务器 3.1、服务器环境 nginx 搭建 使用云服务商提供的远程登陆登录进…

### vscode远程登录阿里云服务器【使用密钥方式--后期无需再进行密码登录】【外包需要密码】

1&#xff1a;windows主机上生成【私钥】【公钥】 1.1生成公钥时不设置额外密码 1.2生成公钥时设置额外密码【给外包人员使用的方法】 2&#xff1a;在linux服务器中添加【公钥】 3&#xff1a;本地vscode连接linux服务器的配置 操作流程如下 1.1本地终端中【生成免密登录…

### 【Linux进程篇】Linux内核——程序地址空间的初构

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; 程序地址空间回顾 我们在讲C语言的时候&#xff0c;大家应该都见过这样的空间布局图&#xff1a; 为了更好的验证不同的数据在内存中的存储位置&#xff0c;下面这段代码我们可以去实验一下&#xff1a; #include<…

### ChatGPT：轻松搞定论文润色，让语言更流畅

GPT从3.5一路升级到4.0&#xff0c;不仅在国外火得一塌糊涂&#xff0c;还悄悄地在我们论文润色的世界里掀起了一场革命。 首先&#xff0c;得承认&#xff0c;虽然这玩意儿是“洋货”&#xff0c;用起来可能得费点脑筋——注册个账号啦&#xff0c;买个会员啦之类的。但它对我…

### SQL数据库多层嵌套 json转sql建表语句，SQL数据库里数组里对象数据怎么创建

1. uniapp sqlite 一个数组包含对象嵌套对象通过主外键方式插入数据库&#xff1a; // 假设有一个对象数组&#xff0c;对象中包含嵌套对象 const objectsArray [{parentObject: {id: 1,name: Parent 1,// 其他父对象属性},childObject: {id: 11,parentId: 1,name: Child 1 o…

### JEPaaS 低代码平台 accessToTeanantInfo SQL注入漏洞复现

0x01 产品简介 JEPaaS低代码开发平台开源版 旨在帮助企业快速实现信息化和数字化转型。该平台基于可视化开发环境，让软件开发人员和业务用户通过直观的可视化界面来构建应用程序 ，而不是传统的编写代码方式。 用户可以在开发平台灵活各个图形化控件，以构建业务流程、逻辑和…

### pytorch深度学习-环境搭建-2

1.1下载cudnn,解压 1.2.找到本级cuda安装路径 1.3.刚才解压文件复制到cuda安装目录 2.1 安装pytouch

### Day23:Leetcode：530.二叉搜索树的最小绝对差 + 501.二叉搜索树中的众数 + 236. 二叉树的最近公共祖先

LeetCode&#xff1a;530.二叉搜索树的最小绝对差 问题描述 解决方案&#xff1a; 1.思路 中序遍历 2.代码实现 class Solution {int pre;int ans;public int getMinimumDifference(TreeNode root) {ans Integer.MAX_VALUE;pre -1;dfs(root);return ans;}public void d…