首页 > 其他分享 >Halcon颜色识别

Halcon颜色识别

时间:2024-08-13 14:16:42浏览次数:12  
标签:Index FushColor 颜色 Halcon Region1 Address 识别

 

本文接扫halcon识别排序颜色,复杂点在于无法使用单一图像区域识别出5中颜色。这里用到了ImageR 和 ImageS

*颜色识别


*定义颜色类型
FushColor := ['black','brown','red','pink','yellow']

*颜色对应灰度值
HueRange := [10,51,68,100,145,191,\
             0,10,30,50]

*定义获取到的坐标,展示颜色
Address :=[]


*读取图片
read_image (Image, 'D:/hoclan/Color/cable1.png')

*分割成三通道,拆分成RGB三种单颜色的图片
decompose3 (Image, \
            ImageR, ImageG, ImageB)


*1.识别前面3种颜色 黑、棕、红
*知识点:彩色图片也可以二值化
*观察发现ImageR比较适合区分 黑、棕、红三色

*剪切
reduce_domain (ImageR, ImageR, ImageReduced)

*获取窗口句柄
dev_get_window (WindowHandle)

*遍历次数,通过样品的个数循环
* tuple_length (FushColor, Length)
Length := |FushColor|
for Index := 0 to 2 by 1
    *二值化 色调区间段进行颜色识别
    threshold (ImageReduced, Region1, \
               HueRange[Index*2], HueRange[Index*2+1])
    *区域填充(孔洞填充)
    *fill_up (Region1, RegionFillUp)
    *连通分割
    connection (Region1, ConnectedRegions)
    * 特征检测到目标区域 6585
    * 按照面积筛序 4421 4731 3400 
    select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 3000, 5000)
    *获取位置
    area_center (SelectedRegions, Area, Row, Column)
    
    Address[Index*2] := Row
    Address[Index*2+1] := Column
    *显示信息
    disp_message (WindowHandle, FushColor[Index], 'image', Row, Column, 'black', 'true')
endfor

*2.图像转HSV,用其对图像颜色的敏感来识别 pink 、 yellow
*图像转HSV
trans_from_rgb (ImageR, ImageG, ImageB, \
                ImageH, ImageS, ImageV, 'hsv')

*二值化,观察发现ImageS比较容易区分
threshold (ImageS, Region1, 100, 255)


*图像剪切 从色调ImageH 上进行剪切
* 色调H 才适合进行识别
reduce_domain (ImageH, Region1, ImageReduced)

*遍历次数,通过样品的个数循环
* tuple_length (FushColor, Length)
Length := |FushColor|
for Index := 3 to 4 by 1
    *二值化 色调区间段进行颜色识别
    threshold (ImageReduced, Region1, \
               HueRange[Index*2], HueRange[Index*2+1])
    *区域填充(孔洞填充)
    *fill_up (Region1, RegionFillUp)
    *连通分割
    connection (Region1, ConnectedRegions)
    * 特征检测到目标区域 6585
    * 按照面积筛序 4421 4731 3400 2615 
    select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 2500, 5000)
    *获取位置
    area_center (SelectedRegions, Area, Row, Column)
    
    Address[Index*2] := Row
    Address[Index*2+1] := Column
    *显示信息
    disp_message (WindowHandle, FushColor[Index], 'image', Row, Column, 'black', 'true')
endfor

*3.清空前面的模糊图像,展示颜色对应的坐标
dev_clear_window ()
reduce_domain (Image, Image, ImageReduced)

Length := |FushColor|
for Index := 0 to Length-1 by 1
    *显示信息
    disp_message (WindowHandle, FushColor[Index], 'image', Address[Index*2], Address[Index*2+1], 'black', 'true')
endfor

 

标签:Index,FushColor,颜色,Halcon,Region1,Address,识别
From: https://www.cnblogs.com/zeussbook/p/18356815

相关文章

  • 关于小程序使用OCR进行身份证识别
    1.第三方插件安装 2.搜索并安装 3.购买免费次数1天100次  https://fuwu.weixin.qq.com/service/detail/000ce4cec24ca026d37900ed551415 4.选中使用的账号 5.支付完成愉快使用 6.正式使用  文档位置:https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx44......
  • [图文直播]使用EasyOCR识别图片上的文字
    安装EasyOCRC:\Users\Administrator>pipinstalleasyocrCollectingeasyocrDownloadingeasyocr-1.7.1-py3-none-any.whl.metadata(11kB)Collectingtorch(fromeasyocr)Downloadingtorch-2.4.0-cp312-cp312-win_amd64.whl.metadata(27kB)Collectingtor......
  • 颜色空间的互相转换
    前言在上一篇中,我们介绍了常见颜色空间的一些定义及表示,在这一章中,我们将大致了解各个颜色空间的互相转换颜色转换算法由于有些颜色空间可能并不能直接转换,或着过于繁杂,本文主要介绍由RGB向其它空间的转换,涉及到的代码也采用Ts进行演示讲解在文章的最后面,会给出封装的转换算法......
  • 【嵌入式linux开发】旭日x3派部署自己训练的yolov5模型(安全帽识别、视频流推理、yolov
    旭日x3派部署自己训练的模型(安全帽识别、视频流推理、yolov5-6.2)windows,框架pytorch,python3.7效果模型训练模型转换1、pt模型文件转onnx2、检查onnx模型3、准备校准数据4、onnx转bin上板视频流推理1、图片推理2、视频流推理效果模型训练进官网可克隆yolov5......
  • Python deepface:让你的代码轻松地实现人脸识别功能
    楔子在GitHub上面发现了一个非常有趣的库,叫deepface,简直是人间宝藏。这个库主要是做人脸识别和面部属性分析的,它集合了目前全球最顶尖的开源人脸识别算法,使用卷积神经网络(CNN)对图像进行特征提取,以实现高精度的人脸识别。实验表明,人类在面部识别任务上的准确率为97.53%,而这些......
  • 翔云PHP身份证识别接口集成示例-护照识别-港澳台通行证识别
    证件识别接口简介:证件识别接口一般是指针对各类证件进行识别,其中包含但不限于身份证识别、护照识别、港澳台通行证识别、户口页识别、驾驶证识别、行驶证识别、台湾健保卡等,其​多应用于需要进行实名认证与证件信息登记的场景。证件身份证识别接口返回结果示例如下:证件识别接......
  • Windows Defender SmartScreen 已阻止启动一个未识别的应用?
    您开发软件(.exe,.cab,.dll,.ocx,.msi,.xpi,.xap等),用户在下载的时候提醒,“WindowsDefenderSmartScreen已阻止启动一个未识别的应用启动,行此应用可能会导致您的电脑存在风险”该怎么解决?一 如何消除提示如果需要消除这一提示,这使用EV代码签名证书对这个软件进行数字签名!其......
  • 【全网独家】OpenCV 面部识别系统
    OpenCV面部识别系统面部识别是计算机视觉中的一项重要应用,广泛用于安防监控、身份验证等领域。本文将详细介绍OpenCV中的面部识别系统,包括其应用场景、原理解释、算法流程、代码示例实现及部署测试场景。目录介绍应用使用场景原理解释算法原理流程图及解释应用场景代码......
  • 后端开发学习敏捷需求-->干系人分析与识别
    干系人分析与识别5W1H干系人分析与识别1.干系人是什么直接或者间接影响专题,以及被专题影响的人和组织,用户也是属于干系人,是产品直接或者间接的使用者又叫利益相关者,指积极参与专题或者在专题中其利益可能受积极或消极影响的个人或组织2.为什么要分析和识别干系人......
  • python实现文字识别
    在Python中实现文字识别(OCR,OpticalCharacterRecognition)的一种流行方式是使用开源库如Tesseract。Tesseract是一个由HP实验室开发、后来由Google优化的OCR引擎,支持多种操作系统,并且能够识别多种语言的文本。步骤1:安装Tesseract首先,你需要在你的系统上安装Tesseract。......