halcon基本图像操作

2023-11-04

资源路径:F:\halcon\halconStudy

阈值分割

在这里插入图片描述
灰度值
在这里插入图片描述
读取图像
在这里插入图片描述

转灰度图

rgb1_to_gray(Image1,grayimage)

在这里插入图片描述

打开灰度直方图
在这里插入图片描述
使能输出
在这里插入图片描述
拖动阈值线条…
在这里插入图片描述
大于阈值的显示红色。。。
(红色就是所选择的区域)

threshold(Image1,Reasion1,100,177)

在这里插入图片描述
在这里插入图片描述

取某一个阈值下的某一个区域

在这里插入图片描述
先使用灰度直方图查看阈值
在这里插入图片描述

设置阈值

threshold(Image1,Reasion1,90,177)

分割区域(不连接的区域)

connection(Reasion1,ConnectionReasion)

在这里插入图片描述
按照面积和中心划分了很多区域、、
(我用花了。。)

在这里插入图片描述

特征直方图按照面积查看选择的区域(注意调下标)
在这里插入图片描述

插入代码

select_shape (ConnectionReasion, SelectedRegions, 'area', 'and', 2, 51896)

在这里插入图片描述
在按照位置进行筛选

select_shape (SelectedRegions, SelectedRegions2, 'row', 'and', 500, 1000)
select_shape (SelectedRegions, SelectedRegions1, 'row', 'and', 200, 600)

在这里插入图片描述

纵坐标是数量,横坐标是对应的参数取值范围。。
在这里插入图片描述
在这里插入图片描述

最后选择了一个噪点。。
在这里插入图片描述

获取中心点位置

在这里插入图片描述

area_center(SelectedRegions3,area,row,Colume)

在这里插入图片描述

read_image (Image20230321132729, 'C:/Users/12135/Desktop/联想截图_20230321132729.png')
rgb1_to_gray(Image20230321132729,grayimage)
threshold(grayimage,Reasion1,192,224)
connection(Reasion1,ConnectionReasion)
select_shape (ConnectionReasion, SelectedRegions, 'area', 'and', 2, 51896)
select_shape (SelectedRegions, SelectedRegions1, 'row', 'and', 217.89, 500)
select_shape (SelectedRegions1, SelectedRegions2, 'row', 'and', 269.27, 292.2)
select_shape (SelectedRegions2, SelectedRegions3, 'column', 'and', 815.596, 863.303)
area_center(SelectedRegions3,area,row,Colume)

形态学

膨胀

在这里插入图片描述
算子:

dilation_circle()
dilation_rectangle1()

在这里插入图片描述

threshold (grayImage, Regions, 173, 255)

使用膨胀算子

dilation_circle(Regions,RegionDilation,3.5)

在这里插入图片描述

read_image (Image20230322112606, 'F:/halcon/halconStudy/联想截图_20230322112606.png')
rgb1_to_gray(Image20230322112606,grayImage)
threshold (grayImage, Regions, 173, 255)
dilation_circle(Regions,RegionDilation,3.5)

腐蚀

在这里插入图片描述
算子:

erosion_circle()
erosion_rectangle1()

在这里插入图片描述

阈值过滤
在这里插入图片描述

threshold (GrayImage, Regions, 9, 255)

腐蚀

erosion_rectangle1 (Regions, RegionErosion, 11, 11)

在这里插入图片描述
在按照位置选择。。
在这里插入图片描述
在这里插入图片描述
效果如下:
在这里插入图片描述

connection (RegionErosion, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'column', 'and', 124.31, 203.21)

完整代码:

read_image (Image20230322114444, 'F:/halcon/halconStudy/联想截图_20230322114444.png')
rgb1_to_gray (Image20230322114444, GrayImage)
threshold (GrayImage, Regions, 9, 255)
erosion_rectangle1 (Regions, RegionErosion, 12, 12)
connection (RegionErosion, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'column', 'and', 124.31, 203.21)

开运算

先腐蚀,后膨胀

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
算子:

opening_circle()
opening_rectangle1()

二值化

rgb1_to_gray (Image20230322120855, GrayImage)

阈值选择
在这里插入图片描述

threshold (GrayImage, Regions, 12, 255)

开运算

opening_circle (Regions, RegionOpening, 10)

在这里插入图片描述

read_image (Image20230322120855, 'F:/halcon/halconStudy/联想截图_20230322120855.png')
rgb1_to_gray (Image20230322120855, GrayImage)
threshold (GrayImage, Regions, 12, 255)
opening_circle (Regions, RegionOpening, 10)

闭运算

先膨胀,后腐蚀

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
算子:

closing_circle()
closing_rectangle1()

完整代码:

read_image (Image20230322120855, 'F:/halcon/halconStudy/联想截图_20230322120855.png')
rgb1_to_gray (Image20230322120855, GrayImage)
threshold (GrayImage, Regions, 116, 255)
connection (Regions, ConnectedRegions)
closing_circle (Regions, RegionClosing, 3.5)
connection (RegionClosing, ConnectedRegions1)

闭运算前的:
在这里插入图片描述

闭运算后的:
在这里插入图片描述

综合使用

在这里插入图片描述

阈值选择

threshold (GrayImage, Regions, 100, 204)

在这里插入图片描述
划分区域

connection (Regions, ConnectedRegions)

在这里插入图片描述
去除小杂点(开运算)

opening_circle (Regions, RegionOpening, 3.5)

划分区域并查看
在这里插入图片描述
在这里插入图片描述

connection (Regions, ConnectedRegions) 
opening_circle (Regions, RegionOpening, 3.5)
connection (RegionOpening, ConnectedRegions1)

将在一起的石头分开(腐蚀)

erosion_circle (RegionOpening, RegionErosion, 10)

在这里插入图片描述
在膨胀回来

dilation_circle (ConnectedRegions2, RegionDilation, 10)

在这里插入图片描述
把石头逐个的选择出来了

read_image (Image20230322122700, 'F:/halcon/halconStudy/联想截图_20230322122700.png')
rgb1_to_gray (Image20230322122700, GrayImage)
threshold (GrayImage, Regions, 100, 204)
connection (Regions, ConnectedRegions) 
opening_circle (Regions, RegionOpening, 3.5)
connection (RegionOpening, ConnectedRegions1)
erosion_circle (RegionOpening, RegionErosion, 10)
connection (RegionErosion, ConnectedRegions2)
dilation_circle (ConnectedRegions2, RegionDilation, 10)
connection (RegionDilation, ConnectedRegions3)

在这里插入图片描述

开运算和检测轮廓

在这里插入图片描述
插入代码。。
在这里插入图片描述

需要去毛刺
(这里使用开运算)

opening_rectangle1(Regions,RegionOpening,11,11)

在这里插入图片描述

轮廓前后对比

在这里插入图片描述

在这里插入图片描述

read_image (Image20230321162033, 'F:/halcon/halconStudy/联想截图_20230321162033.png')
rgb1_to_gray(Image20230321162033,GrayImage)
threshold (GrayImage, Regions, 0, 235)
gen_contour_region_xld(Regions,Contours1,'border')
opening_rectangle1(Regions,RegionOpening,11,11)
gen_contour_region_xld(RegionOpening,Contours2,'border')

字符识别

资源图片路径:

C:\Users\Public\Documents\MVTec\HALCON-12.0\examples\images\ocr

提取点:

dots_image(LotNumber09,DotImage,5,'dark',0)

在这里插入图片描述
阈值选择

threshold (DotImage, Regions1, 10, 255)

在这里插入图片描述
拆分区域

connection(Regions1,ConnectionRegion)

在这里插入图片描述
指定选择字符的区域。(使用特征直方图)
在这里插入图片描述
插入代码:

select_shape (ConnectionRegion, SelectedRegions, ['area','row','column'], 'and', [0,232.57,177.06], [200.01,332.57,512.84])

在这里插入图片描述
联合区域

union1(SelectedRegions,UnionRegions)

在这里插入图片描述
膨胀(吧点连接为数字)

dilation_circle(UnionRegions,UnionDilation,3.5)

在这里插入图片描述
在拆分成不同的区域

connection(UnionDilation,ConnectionRegion2)

在这里插入图片描述
和膨胀之前的区域取交集

intersection(ConnectionRegion2,SelectedRegions,RegionIntersection)

在这里插入图片描述
排序
在这里插入图片描述
在这里插入图片描述

sort_region(RegionIntersection,SortedRegions,'upper_left','true','column')

使用神经网络分类器读取

read_ocr_class_mlp('DotPrint_0-9A-Z.omc',OCRHandle)

在这里插入图片描述

在这里插入图片描述
识别

在这里插入图片描述

do_ocr_multi_class_mlp(SortedRegions,LotNumber09,OCRHandle,Class,Confidence)

在这里插入图片描述
在这里插入图片描述
展示

disp_message (WindowHandle, Class, 'window', 12, 12, 'black', 'true')

在这里插入图片描述

dev_close_window()
dev_open_window(0,0,512,512,'black',WindowHandle)
read_image (LotNumber09, 'F:/halcon/halconStudy/lot_number_09.png')
dots_image(LotNumber09,DotImage,5,'dark',0)
threshold (DotImage, Regions1, 10, 255)
connection(Regions1,ConnectionRegion)
select_shape (ConnectionRegion, SelectedRegions, ['area','row','column'], 'and', [0,232.57,177.06], [200.01,332.57,512.84])
union1(SelectedRegions,UnionRegions)
dilation_circle(UnionRegions,UnionDilation,3.5)
connection(UnionDilation,ConnectionRegion2)
intersection(ConnectionRegion2,SelectedRegions,RegionIntersection)
sort_region(RegionIntersection,SortedRegions,'upper_left','true','column')
read_ocr_class_mlp('DotPrint_0-9A-Z.omc',OCRHandle)
do_ocr_multi_class_mlp(SortedRegions,LotNumber09,OCRHandle,Class,Confidence)
disp_message (WindowHandle, Class, 'window', 12, 12, 'black', 'true')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

halcon基本图像操作 的相关文章

随机推荐

  • android 仿钉钉日历,仿钉钉左右滑动日历

    先上我的效果图 再说思路 我这里不贴代码 思路 懂了 不管用前端还是移动端 都可以做出来的 做这个左后滑动的日历之前 首先无从下手的 有两个地方 第一 该怎么实现 左右滑动效果 第二 展示的日期是怎么计算的 因为我们是用ionic2 写的项
  • 【Docker+Mysql】docker搭建的mysql8.0中文乱码问题

    环境 CentOS 7 mysql docker 问题描述 查询数据库时 发现服务器端数据出现中文乱码问题 所有中文显示成问号 导致我的接口访问使用从数据库中读取出来的数据无法处理 解决过程 使用Docker搭建mysql容器 和不使用Do
  • 【python爬虫】1.爬虫基础知识

    文章目录 前言 初识爬虫 什么是爬虫 为什么需要爬虫 明晰路径 浏览器的工作原理 爬虫的工作原理 体验爬虫 requests get Response对象的常用属性 爬虫伦理 总结 前言 很高兴能在这里遇见你 我将会带你学习网络爬虫 我们可
  • MySql范围查找时,索引不生效问题原因

    1 问题描述 本文对建立好的复合索引进行排序 并取记录中非索引字段 发现索引不生效 例如 有如下表 DDL语句为 CREATE TABLE employees emp no int 11 NOT NULL birth date date N
  • pandas 常见绘图总结

    pandas 常见绘图总结 文章目录 pandas 常见绘图总结 前言 一 设置字体和显示中文 二 pandas 可视化 0 25 3版本 1 线形图 2 条形图 2 1 垂直条形图 2 2 水平条形图 3 饼图 4 散点图 4 1 普通散
  • TensorFlow实现梯度下降法求解一元和多元线性回归问题

    使用TensorFlow求解一元线性回归问题 import tensorflow as tf import numpy as np import matplotlib pyplot as plt 设置字体 plt rcParams font
  • Vue触发兄弟级组件中的某个方法

    要求 页面上有两个兄弟级组件 假如我点击组件 1 中的按钮 需要触发组件 2 中的某个方法 在这里 以购物车页面为例 我选择商品列表中的某个商品选中状态 在结算组件中根据列表中是否有未选中状态判断全选状态 效果 第一步 在父级页面引入两个兄
  • infura上部署以太坊智能合约

    Infura是一个托管的以太坊节点集群 可以将你开发的以太坊智能合约发布到infura提供的节点上 而无需搭建自己的以太坊节点 可能你还不了解Infura 但如果你使用过MetaMask 那么就已经接触过Infura了 因为它是MetaMa
  • 除了负载均衡,Nginx 能做的真是太强大了!

    Nginx应该是现在最火的web和反向代理服务器 没有之一 她是一款诞生于俄罗斯的高性能web服务器 尤其在高并发情况下 相较Apache 有优异的表现 那除了负载均衡 她还有什么其他的用途呢 下面我们来看下 一 静态代理 Nginx擅长处
  • 赛普拉斯 12864_如何使用赛普拉斯自动化辅助功能测试

    赛普拉斯 12864 In my previous post I covered how to add screenshot testing in Cypress to ensure components don t unintention
  • 免疫受体 AIRR 分析平台 immuneML 简介

    前言 免疫系统在肿瘤分型和治疗中发挥着重要的作用 TCR 和 BCR 都属于适应性免疫受体 Adaptive immune receptor repertoires AIRR AIRR 组成信息结合 MHC 年龄 性别等 在基于受体库的预测
  • USB设备的Vendor ID和Product ID是什么?有什么样?接到不同的pc他们的ID还是一样的吗?

    USB设备的Vendor ID 厂商识别码 和Product ID 产品识别码 是用来标识USB设备的两个数字代码 Vendor ID是由USB Implementers Forum颁发给厂商的唯一标识码 而Product ID则是由厂商自
  • ITM机制-不用串口也能printf

    在PC上编写过C语言的人都知道 printf可以向控制台输出 scanf可以从控制台获取输入 这里的printf scanf都是标准库函数 利用这些函数 我们可以很方便的调试程序 printf的方式有很多种 一般情况下 我们可以使用串口或其
  • 像素鸟html代码,flappy-bird方块版(用小方块替代像素鸟)

    实例简介 flappy bird方块版 实例截图 核心代码 Initialize Phaser and creates a 400x490px game var game new Phaser Game 400 490 Phaser AUT
  • IDEA找不到vue插件下载,使用外部安装vue.js插件的方法

    setting plugins中找不到Vue js插件 使用IDEA时打开Setting gt Plugins找不到vue js插件 看其他网友Marketplace和Installed找不到还会提示Browse repositories
  • 新手学编程必会的100个代码

    前言 我记得刚开始接触编程的时候 觉得太难了 也很好奇 写代码的那些人也太厉害了吧 全是英文的 他们的英文水平一定很好吧 他们是怎么记住这么多代码格式的 而且错了一个标点符号 整个程序都会有影响 一个程序几千行 错一个标点符号都不行这也太难
  • python 代码 给点云增加随机噪音同时保留原有点云

    微信 394467238 有的时候我们需要把原有的点云数据扩充一下 让它的鲁棒性更强 思路很简单 就是先生成一个随机的正态分布的噪音 然后加到点云原有的XYZ数据上面 直接放代码 代码已经运行过了 没有问题 代码中的 std 就是正态分布的
  • 记录一下mac mini 2018 的折腾过程

    更新 昨天手贱在外置雷电SSD中安装了苹果内置SSD的驱动 随即就造成了外置显卡的挂载不上 又折腾了大概三个小时 随后想到了应该是操作系统内部资源竞争 造成不挂载外置显卡 随后删除了内置SSD的驱动 然后才挂载外置显卡成功 还有一点就是 外
  • SendMessage()窗体之间发消息

    SendMessage调用一个窗口的窗口函数 将一条消息发给那个窗口 一 父窗口向子窗口发消息 1 接收方 1 1头文件里面声明消息 define MSG UPDATE LEFT CHILD WM USER 600 1 2消息映射 在头文件
  • halcon基本图像操作

    halcon基本图像操作 阈值分割 取某一个阈值下的某一个区域 获取中心点位置 形态学 膨胀 腐蚀 开运算 闭运算 综合使用 开运算和检测轮廓 字符识别 资源路径 F halcon halconStudy 阈值分割 灰度值 读取图像 转灰度