HALCON示例程序color_pieces.hdev通过MLP训练器对彩色棋子进行分类识别

HALCON示例程序color_pieces.hdev通过MLP训练器对彩色棋子进行分类识别;分别在彩色图像下与灰度图像下进行,从而产生对比。

示例程序源码(加注释)

  • 关于显示类函数解释
    dev_update_off ()
    dev_close_window ()
    dev_open_window (0, 0, 557, 416, ‘black’, WindowHandle)
    set_display_font (WindowHandle, 14, ‘mono’, ‘true’, ‘false’)
    dev_set_draw (‘margin’)
  • 初始化
    ImageRootName := ‘color/color_pieces_0’
    Regions := [‘yellow’,‘pink’,‘blue’,‘background’]
    Highlight := [‘goldenrod’,‘magenta’,‘cyan’]
    gen_empty_obj (Classes)
    for Mode := 0 to 1 by 1
    dev_set_color (‘black’)
    read_image (Image, ImageRootName + ‘0’)
    • 生成灰度三通道图像
      if (Mode == 1)
      • rgb1_to_gray - 将RGB图像转换为灰度图像。
      • rgb1_to_gray(RGB图:灰度图 ::);转换公式:灰色= 0.299 *R+ 0.587 *G+ 0.114 *B。
        rgb1_to_gray (Image, GrayImage)
      • compose3 - 将3个图像转换为三通道图像。
      • compose3(图1,图2,图3:多通道图像 ::)
        compose3 (GrayImage, GrayImage, GrayImage, Image)
        dev_display (Image)
        disp_message (WindowHandle, ‘Train and apply the classes again on gray images’, ‘window’, 12, 12, ‘black’, ‘false’)
        disp_continue_message (WindowHandle, ‘black’, ‘true’)
        stop ()
        endif
        if (Mode == 0)
      • 指定颜色类
        for I := 1 to 4 by 1
        dev_display (Image)
        dev_display (Classes)
        disp_message (WindowHandle, [‘Drag rectangle inside ’ + Regions[I - 1] + ’ color’,‘Click right mouse button to confirm’], ‘window’, 24, 12, ‘black’, ‘false’)
        draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
        gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
      • 带有concat_obj解释的贴子注意和union1的区别
        concat_obj (Classes, Rectangle, Classes)
        endfor
        endif
    • 创建MLP分类器并添加训练样本;关于MLP分类器解释的例子
      create_class_mlp (3, 7, 4, ‘softmax’, ‘normalization’, 3, 42, MLPHandle)
      add_samples_image_class_mlp (Image, Classes, MLPHandle)
      disp_message (WindowHandle, ‘Training…’, ‘window’, 100, 12, ‘black’, ‘false’)
      train_class_mlp (MLPHandle, 400, 0.5, 0.01, Error, ErrorLog)
      for J := 0 to 3 by 1
      read_image (Image, ImageRootName + J)
      if (Mode == 1)
      rgb1_to_gray (Image, GrayImage)
      compose3 (GrayImage, GrayImage, GrayImage, Image)
      endif
      classify_image_class_mlp (Image, ClassRegions, MLPHandle, 0.5)
      dev_display (Image)
      disp_message (WindowHandle, ‘Looking for 4 game pieces of each color …’, ‘window’, 24, 12, ‘black’, ‘false’)
      dev_set_line_width (2)
      for Figure := 1 to 3 by 1
      * copy_obj - 复制HALCON数据库中的图标对象。
      * copy_obj(要复制对象:复制出的对象,开始索引号,对象数量:)
      copy_obj (ClassRegions, ObjectsSelected, Figure, 1)
      * 分割定义域
      connection (ObjectsSelected, ConnectedRegions)
      * 通过面积筛选区域
      select_shape (ConnectedRegions, SelectedRegions, ‘area’, ‘and’, 400, 99999)
      * 对区域进行计数
      count_obj (SelectedRegions, Number)
      dev_set_color (Highlight[Figure - 1])
      dev_display (SelectedRegions)
      OutString := Regions[Figure - 1] + ': ’ + Number + ’ ’
      dev_set_color (‘green’)
      disp_message (WindowHandle, OutString, ‘window’, 24 + 30 * Figure, 12, ‘black’, ‘false’)
      if (Number != 4)
      disp_message (WindowHandle, ‘Not OK’, ‘window’, 24 + 30 * Figure, 120, ‘red’, ‘false’)
      else
      disp_message (WindowHandle, ‘OK’, ‘window’, 24 + 30 * Figure, 120, ‘green’, ‘false’)
      endif
      endfor
      if (J < 3)
      disp_continue_message (WindowHandle, ‘black’, ‘true’)
      stop ()
      endif
      endfor
      endfor
      dev_clear_window ()
      dev_display (Image)
      Message := ‘The game pieces cannot be classified reliable on’
      Message[1] := ‘gray images because the gray values of the’
      Message[2] := ‘game pieces cannot always be distinguished from’
      Message[3] := ‘the gray values of the background.’
      disp_message (WindowHandle, Message, ‘window’, 12, 12, ‘black’, ‘true’)

处理思路

这个例子是将三通道的RGB图像使用MLP分类器进行分类,分别对灰度图像与彩色图像进行了训练与识别,对比发现还是彩色图像分类较为准确,因为灰度图像不能很好地分割出棋子与背景。

后记

大家有什么问题可以向我提问哈,我看到了第一时间回复,希望在学习的路上多多结交良师益友。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无人驾驶汽车之争本田为何未战先败

摘要 : 本田汽车的研发部门对于汽车虽然理解深刻&#xff0c;但从整体而言&#xff0c;本田的造车理念还停留在上个时代&#xff0c;在未来的无人驾驶竞争中&#xff0c;本田已经有未战先啊败的苗头。 百度百家The BIG Talk硅谷站连续5小时的高密度头脑风暴&#xff0c;果然让人…

理解git结构与简单操作(四)合并分支的方法与策略

接上节&#xff0c;此时的dev分支与master分支的进度就不一样了&#xff0c;所以需要将dev分支与master分支同步。这里需要的就是合并分支的操作&#xff0c;大家应该都知道用git merge或者git rebase。 git merge merge&#xff0c;即「合并」。 fast-forward 当出现我们上面图…

HALCON示例程序color_segmentation_pizza.hdev披萨肉饼识别。

HALCON示例程序color_segmentation_pizza.hdev披萨肉饼识别。 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 dev_update_off () dev_close_window () read_image (Image, ‘color/pizza_01’) get_image_size (Image, Width, Height) dev_open_window (0,…

摄像机标定

利用摄像机所拍摄到的图像来还原空间中的物体。在这里&#xff0c;不妨假设摄像机所拍摄到的图像与三维空间中的物体之间存在以下一种简单的线性关系&#xff1a;[像]M[物],这里&#xff0c;矩阵M可以看成是摄像机成像的几何模型。 M中的参数就是摄像机参数。通常&#xff0c;这…

Linux下Tomcat重新启动

在Linux系统下&#xff0c;重启Tomcat使用命令操作的&#xff01; 首先&#xff0c;进入Tomcat下的bin目录 cd /usr/local/tomcat/bin 使用Tomcat关闭命令 ./shutdown.sh 查看Tomcat是否以关闭 ps -ef|grep java 如果显示以下相似信息&#xff0c;说明Tomcat还没有关闭 root …

大数据和人工智能的关系是什么?

何为大数据&#xff1f;何为人工智能&#xff1f; 大数据&#xff0c;百度百科上是这么定义的&#xff0c;指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合&#xff0c;是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率…

【2017-03-09】SQL Server 数据库基础、四种约束

一、数据库和内存的区别 数据库&#xff1a;一些存储在硬盘上的数据文件 内存&#xff1a;计算机临时存储的一些数据 二、常用数据库 .Net - SQL Server PHP - MySql Java - Oreacl 三、SQL Server使用方法 1、新建数据库 右键点击“数据库”&#xff0c;点击“新建数据库”。在…

HALCON示例程序color_simple.hdev在HSV空间筛选黄色线

HALCON示例程序color_simple.hdev在HSV空间筛选黄色线 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 dev_close_window () dev_open_window (0, 0, 640, 480, ‘black’, WindowHandle) for i : 1 to 2 by 1 read_image (Image, ‘cable’ i) 将彩色图片…

张正友标定法 【计算机视觉学习笔记--双目视觉几何框架系列】

三、致敬“张正友标定” 此处“张正友标定”又称“张氏标定”&#xff0c;是指张正友教授于1998年提出的单平面棋盘格的摄像机标定方法。张氏标定法已经作为工具箱或封装好的函数被广泛应用。张氏标定的原文为“A Flexible New Technique forCamera Calibration”。此文中所提到…

SQL基础三

关系数据库操作语言 对关系数据库进行操作标准语言是所谓的结构化查询语言SQL&#xff0c;和其他程序语言不一样的是&#xff0c;它是非过程语言。 SQL采用自然英语的结构&#xff0c;比较容易上手&#xff0c;目前SQL已经有了ANSI标准&#xff0c;哥哥数据库厂商除了SQL语法外…

HTTP状态码详解

HTTP状态码介绍 createTime--2016年9月24日09:41:48 参考链接&#xff1a;http://www.w3school.com.cn/tags/html_ref_httpmessages.asp概括&#xff1a;   1字开头&#xff1a;消息。信息性状态码&#xff0c;代表请求已被接受&#xff0c;需要继续处理。&#xff08;接受的…

HALCON示例程序connection.hdev分割连通域

HALCON示例程序connection.hdev分割连通域 示例程序源码&#xff08;加注释&#xff09; read_image (Image, ‘mreut’) 二值化 threshold (Image, Region, 190, 255)分割连通域 connection (Region, ConnectedRegions)使用面积进行筛选 select_shape (ConnectedRegions, S…

一张图学习常见this的指向

在写JS代码时&#xff0c;this的出场频率颇高&#xff0c;担负了传递对象&#xff0c;作用域等等功能&#xff0c;堪称全能超人。 但是this复杂多变&#xff0c;初学的时候想弄清楚并不简单&#xff0c;绕着绕着就迷路了。“我是谁&#xff1f;我从哪来&#xff1f;我要到哪去&…

HALCON示例程序count_fish_sticks.hdev鱼棒完整性检测

HALCON示例程序count_fish_sticks.hdev鱼棒完整性检测 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 dev_update_off () dev_close_window () read_image (Image, ‘food/fish_stick_package_01’) get_image_size (Image, Width, Height) dev_open_windo…

关于相机标定的问题答复网友

网友snow2012720 我刚开始学习计算机视觉的双目三维重建内容&#xff0c;感觉好多内容不懂&#xff0c;看到你的博文&#xff0c;了解到你对双目标定三维重建这些有深入的研究&#xff0c;您是过来人了&#xff0c;能否帮忙给我在学习标定匹配三维重建过程中给予指点&#xff…

转:ORACLE的JDBC连接方式:OCI和THIN

oracle的jdbc连接方式:oci和thin oci和thin是Oracle提供的两套Java访问Oracle数据库方式。 thin是一种瘦客户端的连接方式&#xff0c;即采用这种连接方式不需要安装oracle客户端,只要求classpath中包含jdbc驱动的jar包就行。thin就是纯粹用Java写的ORACLE数据库访问接口。oci是…

软工网络15个人阅读作业2——提问题

提出问题 快速通读教材《构建之法》&#xff0c;并参照提问模板&#xff0c;提出5个问题。 问题一&#xff1a; p83有一段话&#xff1a; 两人在一起合作&#xff0c;自然会出现不同意见&#xff0c;每个人都有自己的想法&#xff0c;在两个人平等合作的情况下&#xff0c;不存…

HALCON示例程序count_pellets.hdev分割豆子,基本形态学的使用

HALCON示例程序count_pellets.hdev分割豆子&#xff0c;基本形态学的使用 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 dev_update_off () read_image (Image, ‘pellets’) dev_close_window () get_image_size (Image, Width, Height) dev_open_window…

绝对路径VS相对路径

绝对路径&#xff1a;不必赘述&#xff0c;就是从盘符开始写直到找到你所需要的文件为止&#xff0c;把所有的目录写完整即可。但是在做网站的时候绝对不推荐用绝对路径&#xff0c;因为不可能服务器中的路径和在做设计时候所用的电脑的路径一致&#xff0c;也不可能说在服务器…

四、极大似然参数估计

四、极大似然参数估计 此篇博文&#xff0c;玉米将和大家分享一下“张氏标定”除几何推导外的另外一大精髓&#xff1a;参数估计。 张教授在大作“A Flexible New Technique for Camera Calibration”中的原话如下&#xff1a;” The above solution is obtained through minim…