近期测试一个电容测高的项目,对电容两端测高。

每次需要对电容两端测高,求得高度差,进行管控

遇到一下问题:

1、原图为32位的深度图,通过halcon打开,因为高度信息太小,图像一片黑

2、将深度图转为灰度图后,如何能自动识别电容,并在两端创建ROI区域

先解决第一个问题:

思路本质在于将深度图信息数据进行拉伸,然后将拉伸信息后的图像转为byte

第一种:基于线性变换将高度信息进行变换,高度信息低时拉高,过高时降低

然后将其格式转为byte,最后将对比度拉伸。

scale_image (Image, ImageScaled, 20, -100)
convert_image_type (ImageScaled, ImageConverted, 'byte')
scale_image_max (ImageConverted, ImageScaleMax)

第二种思路:将高度信息内(lowValue, highValue)拉伸成0-255,对应第一种思路第一个和第三个算子,然后将其转为byte。

scale_image_range (Image, ImageScaled, lowValue, highValue)

convert_image_type (ImageScaled, ImageConverted, 'byte')

上述两种效果实测,效果提升明显。

再解决第二个问题:

1)设置阈值分割出电容、驱动器和背景,再临近分割

threshold (ImageReduced, Region, lowThreshold, highThreshold)
connection (Region, ConnectedRegions)

2)电容和驱动器高度类似,转为灰度后,也相近,剔除干扰项

select_shape (ConnectedRegions, SelectedRegions, ['area','anisometry'], 'and', [MINArea,MINRab], [MAXArea,MAXRab])

基于区域面积和长短轴比值筛选,区域面积可过滤噪声,长短轴比值过滤电路板上的驱动器(电容为长方形,驱动器为正方形,长短轴比值不一样)

3)定位到电容区域两端并生成ROI

*输入区域、输出矩形区域宽高
*输出区域outputRegion1、outputRegion2
inputRegion:=ObjectSelected
width:=2
height:=2
*获得电容的中心点
area_center (inputRegion, Area, Row, Column)
*计算电容与水平方向的夹角
orientation_region (ObjectSelected, Phi)
*知道区域中心点和到中心点距离
*求出电容两端自动生成区域的中心点
tanx:=sin(Phi)/cos(Phi)
roiX1:=Row+(distance*tanx/sqrt(1+(tanx*tanx)))
roiX2:=Row-(distance*tanx/sqrt(1+(tanx*tanx)))
resXTuple[Index]:=roiX1
resXTuple[Index+1]:=roiX2
roiY1:=Column+(distance/sqrt(1+(tanx*tanx)))
roiY2:=Column-(distance/sqrt(1+(tanx*tanx)))
resYTuple[Index]:=roiY1
resYTuple[Index+1]:=roiY2
gen_rectangle2 (outputRegion1, roiX1, roiY1, rad(Phi), width, height)
gen_rectangle2 (outputRegion2, roiX2, roiY2, rad(Phi), width, height)

4)对两端区域进行测高,高度做差返回两端极差,对标极差,进行管控。

关于halcon深度图转灰度图相关推荐

  1. 使用opencv将16位深度图转灰度图

    使用opencv将16位深度图转灰度图,默认深度图每个像素以uint16_t来保存. #include <string> #include "opencv2/core/core. ...

  2. Intel Realsense D435 将深度图的灰度图映射为彩色图,打印输出灰度图或彩色图

    # -*- encoding: utf-8 -*- """ @File : test_191123_将深度图打印成黑白图.py @Time : 2019/11/24 15 ...

  3. 深度图+灰度图 可视化判断灰度图区域是否有深度

    依赖库 PIL matplotlib numpy cv2 xlrd依赖文件 项点检测项目的xml文件 字体simsun.ttc 标准图数据路径(含深度图,灰度图,标注后的json) # yangnin ...

  4. python opencv cv.applyColorMap()函数(颜色映射)ColormapTypes【将Intel Realsense D435深度图的黑白图映射为彩色图】

    文章目录 API ColormapTypes 完整应用代码[将深度图的黑白图映射为彩色图] map原理 能否map CV_24UC3的? API def applyColorMap(src, colo ...

  5. 乐视三合一体感摄像头Astra pro开发记录1(深度图、彩色图及点云简单显示)

    在某鱼上淘的乐视三合一体感摄像头,捡漏价九十几块,买来玩玩. 网上已经有一些关于此款摄像头的开发资料. 官方的开发资料:官网链接 按官方网站以及其他帖子,下载并安装相机的驱动和SDK,不难配置好相机. ...

  6. HALCON示例程序gray_features.hdev提取灰度图的不同特征(area_center_gray 、elliptic_axis_gray)

    HALCON示例程序gray_features.hdev提取灰度图的不同特征(area_center_gray .elliptic_axis_gray) 示例程序源码(加注释) 读入图片 read_i ...

  7. 图像处理中涉及的灰度图、彩色图以及深度图概念

    图像处理中涉及最多的概念就是图像的类型,为了很好的理解图像的概念以及处理图片,我们就需要对常见的图像具有一定的概念. 我们首先介绍一下生活中常见的图像格式: 1.bmp格式:这是一种不常见的图像格式, ...

  8. 将灰度图与深度图合成彩图

    缘起: 网上搜了不少资料,只发现深度图转3D的,没有我想要的效果,于是自己动手做了一个. 目标: 我想将灰度图和深度图结合起来,用灰度图显示产品上的图案,用颜色来显示深度.在后续处理的时候可以很直观. ...

  9. halcon深度图,平面拟合后,高度矫正

    dev_clear_window() dev_open_window (0, 0, 545, 400, 'black', WindowHandle) xResolution:=0.04 yResolu ...

最新文章

  1. CBWFQ技术简介及应用配置事例
  2. 轻松搞定面试中的红黑树问题
  3. ntfs 格式在linux下挂载
  4. js输出一个菱形_Webpack 4入口、输出和ES6模块
  5. 程序员数学基础【三、取模运算(取余运算功能重叠部分)】(Python版本)
  6. 1070. 结绳(25)
  7. 做一个高一致性、高性能的Flutter动态渲染,真的很难么?
  8. JAVA构造函数是不是封装_Java 封装与构造函数
  9. php商品显示循环,php – 如何在循环中显示GROUP BY数据
  10. [编程之美]饮料供货
  11. C#OOP之十一 委托和事件
  12. 微信小程序——评论点赞功能
  13. java中容器如何维护其内容
  14. C语言程序设计的特点
  15. 微信小程序picker组件添加默认选择(单个picker情况)
  16. MOOC《程序设计入门——C语言》翁恺 第六周编程练习及答案
  17. 高通骁龙芯片的随身wifi入门刷机教程
  18. SwiftUI 使用Apple Visionkit构建文档扫描仪
  19. 如何将带网口打印机进行局域网共享打印
  20. NOJ 高精度计算π值

热门文章

  1. 图像分割:DeepLabV3与DeepLabV3+介绍
  2. python单片机自动浇花_【应用教程】Micro:bit自动浇花系统
  3. solr和elasticsearch小结
  4. 《快速掌握PyQt5》第二十三章 主窗口QMainWindow
  5. Android使用Google Map服务 - 根据GPS信息在地图上定位
  6. 计算机行业到底还能火多久?
  7. 【uni-app学习】uni-app低功耗蓝牙采坑记录
  8. 中国石油大学(北京)-《汇编语言程序设计》第一阶段在线作业
  9. A005:查找文件之find, locate, whereis, which, type
  10. 【机器学习】树模型遇上类别型特征(Python)