HDevelop实现图片中局部图形识别标记
1、范例程序
//先新建一个窗口,用于显示图片
dev_open_window(0,0,-1,-1,'black',testWin)
//打开一张图片(第一个参数是名字(自定义),第二个参数是路径)
read_image (Die03,'C:/Users/Public/Documents/MVTec/HALCON-13.0/examples/images/die/die_03.png')
//从图片Die03中找出灰度值为128-255的区域输出到区域brightRegion
threshold (Die03,brightRegion, 128, 255)
//找出能包含区域brightRegion的最小矩形区域输出到区域RegionTrans
shape_trans(brightRegion, RegionTrans, 'rectangle1')
//通过最小矩形区域确定出裁剪后的图片并输出到ImageReduced(图片)
reduce_domain(Die03, RegionTrans, ImageReduced)
注:上述步骤是用于缩减要处理的图片,为之后的处理提高效率
注:connection输出的是一个区域数组
//在裁剪后的图片上找出灰度值为0-50的区域输出到区域Region
threshold(ImageReduced, Region, 0, 50)
//填充区域Region并输出到RegionFillUp
fill_up_shape(Region, RegionFillUp, 'area', 1, 100)
//将区域ReRegionFillUp区域中不是圆的部分移除,结果输出到区域rmNoneCircle
opening_circle(RegionFillUp, rmNoneCircle, 15.5)
//由于rmNoneCircle是图片的一部分,调用这个算子将它独立出来输出到区域circleRegions
//抽出独立的物体组成一个区域
connection(rmNoneCircle, circleRegions)
//选择满足0.85-1.0范围的圆的区域,输出到finalRegion
select_shape (circleRegions, finalRegion,'circularity', 'and', 0.85, 1.0)
//将finalRegion区域数量统计出来,输出到变量Number
count_obj(finalRegion, Number)
//找出包含区域的最小圆
smallest_circle(finalRegion, Row, Column, Radius)
2、语法
|XXXX|:求XXXX中的元素个数
Sum(XXXX):求XXXX中元素的和
3、效果(最终结果是找出紫色部分的圆形空洞)
4、范例程序2
//打开一个窗口用于显示图片
dev_open_window(0,0,-1,-1,'black',winHandle)
//打开一副图片并命名为Die03
read_image (Die03,'C:/Users/Public/Documents/MVTec/HALCON-13.0/examples/images/die/die_03.png')
//等待用户在图片上画出矩形,所绘制的矩形参数传递给Row1 Column1…等参数
draw_rectangle1(winHandle, Row1, Column1, Row2, Column2)
//用用户绘制矩形时所确定的参数生成一个矩形区域,结果传递给tmpRect
gen_rectangle1(tmpRect, Row1, Column1, Row2, Column2)
//用矩形区域裁剪出用于处理的图像输出到ImageReduced,用来提高效率
reduce_domain(Die03, tmpRect, ImageReduced)
//用那个小区域的图片生成一个模板
create_template(ImageReduced, 5, 4, 'sort', 'original', TemplateID)
//用户绘制的矩形的中点
tmpRow :=(Row1+Row2)/2
tmpCol :=(Column1+Column2)/2
//将图片和模板快速匹配,输出匹配的区域到Matches
fast_match (Die03,Matches, TemplateID, 20)
//将区域从图像独立出来并拆分,结果输出到circleRegions(一个存放区域的数组)
connection (Matches,circleRegions)
//统计出匹配的区域数量(即数组的元素个数)
count_obj(circleRegions, Number)
//注:circleRegions是一个独立于图像的区域,无法匹配
//所以下面这个算子是将图片Die03中的原始数据输入到circleRegions形成新的图片输出到tmpImage
add_channels(circleRegions, Die03, tmpImage)
//在tmpImage中与模板匹配的区域,将匹配的坐标信息存出到数组Row和Column
best_match(tmpImage, TemplateID, 20, 'true', Row, Column, Error)
//将匹配的矩形绘制出来
disp_rectangle1(winHandle, Row1+Row-tmpRow, Column+Column1-tmpCol, Row+Row2-tmpRow,Column+Column2-tmpCol)
运行效果如下图
HDevelop实现图片中局部图形识别标记相关推荐
- 项目记录一:用Python识别图片中指定颜色标记块并绘制其最小矩形框以及坐标点
记录准研一小白第一次动手实践课题组师姐安排的任务,非常感谢CSDN前辈们所撰写的博客对我的帮助. 一.项目背景 如图所示,有这样一张现场勘测的图片,要实现绘制出图中三个黄色标记块的最小矩形框以及左上角 ...
- 使用java+OpenCV进行图片对比并标记差异部分(支持中文图片路径)
1.设计方法为: 首先将两个图片转化为灰度图: 进行灰度图比对,1为完全相同,此处可以插入阀值: 计算两个灰度图的绝对差值并放入一个新的Mat对象: 将新的mat对象进行绝对差值化: 寻找轮廓图并用红 ...
- Computer science 概念汇总
文章目录 机器学习&深度学习相关 DNN DNN与MLP的区别 CNN 人类视觉原理 CNN 的基本原理 应用 总结 MLP 其它常见名词含义 数据压缩相关 启发式算法相关 机器学习& ...
- 快速掌握 深度学习(Deep Learning) 常用概念术语,常用模型
1.什么是深度学习? 深度学习的概念: 深度学习是机器学习的一个分支,深度学习是使用了深度神经网络的机器学习 . 所以深度学习=深度神经网络+机器学习. 神经网络,也叫作人工神经网络 .是一种模拟人脑 ...
- YOLOv5基础知识点——卷积神经网络
一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用)- 产品经理的人工智能学习库 (easyai.tech) 人类的视觉原理如下:从原始信号摄入开始(瞳孔摄入像素 Pixels),接着做初步处 ...
- 双阈值检测阈值选择_通过阈值进行计算机视觉高级车道检测
双阈值检测阈值选择 In my earlier post, I talked about finding lane lines using Edge Detection and Hough Trans ...
- 卷积神经网络 CNN 简述
文章目录 所解决的问题 需要处理的数据量太大 很难保留图像特征 基本原理 卷积层 -- 提取图像特征 池化层 -- 数据降维(避免过拟合) 全连接层 -- 输出结果 实际应用 图像分类.检索 目标检测 ...
- Photoshop CS5自学学习笔记
Photoshop CS5学习笔记 常宝龙 2014年6月 引言 一直以来都对Photoshop非常感兴趣,每当在网上看到一些Photoshop大神做出的很神奇的图片时,都会莫名其妙的从心底里 ...
- 原创《基于深度特征学习的细粒度图像分类研究综述》
原创,未经同意,请勿转载 后记:这篇综述文章虽然是19年放出来,但是我在18年初的时候写的,当时准备找个国内期刊投一下的,后面某些原因放弃了.所以文中引用的方法都是17年以前的,有点过时了,现在又出现 ...
最新文章
- ajax异步后台存放购物车表,jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)...
- 一位被信号与系统耽误了的漫画家
- 车坛刮起了一阵文艺风
- ajax传formdata类型的数据_JQuery.Ajax()的data参数类型
- Java文件删除操作File#delete()
- Sencha touch Panel之间的跳转(如不使用TabPanel或者Carousel控件而产生跳转的动画效果)...
- dblink传输clob字段
- 笔记:less的三种使用方法
- 大中台模式下如何构建复杂业务核心状态机组件
- 【转】探秘Java中的String、StringBuilder以及StringBuffer
- 多元统计分析假设检验
- Windows图片和传真查看器开启故障
- 分析锂电池充放电保护电路的特点及工作原理
- php后台发布微信小程序
- LTE MAC层令牌桶算法
- java split 不含_java神坑系列——split
- 红旗Linux桌面操作系统V11社区预览版系统安装
- 爬取历史天气数据并绘制成折线图
- MacOS QT qmake 与 CMake 设置ICON
- Tanner L-Edit 系列教程:02 示例安装与工艺库