HALCON示例程序classify_image_class_mlp.hdev如何使用MLP分类器分割RGB图像

HALCON示例程序classify_image_class_mlp.hdev如何使用MLP分类器分割RGB图像

示例程序源码(加注释)

关于显示相关显示在其他帖子有介绍。
dev_update_off ()
dev_close_window ()
dev_open_window (0, 0, 735, 485, ‘black’, WindowHandle)
set_display_font (WindowHandle, 14, ‘mono’, ‘true’, ‘false’)
dev_set_draw (‘margin’)
dev_set_colored (6)
dev_set_line_width (3)
read_image (Image, ‘patras’)
dev_display (Image)
Color := [‘indian red’,‘cornflower blue’,‘white’,‘black’,‘yellow’]

  • 创建分割不同类别的区域
    gen_rectangle1 (Sea, 10, 10, 120, 270)
    gen_rectangle2 (Deck, [170,400], [350,375], [-0.56,-0.75], [64,104], [26,11])
    union1 (Deck, Deck)
    gen_rectangle1 (Walls, 355, 623, 420, 702)
    gen_rectangle2 (Chimney, 286, 623, -0.56, 64, 33)
  • concat_obj介绍
    concat_obj (Sea, Deck, Classes)
    concat_obj (Classes, Walls, Classes)
    concat_obj (Classes, Chimney, Classes)
  • 显示
    dev_set_color (Color[0])
    dev_display (Deck)
    dev_set_color (Color[1])
    dev_display (Sea)
    dev_set_color (Color[2])
    dev_display (Walls)
    dev_set_color (Color[3])
    dev_display (Chimney)
    Message := ‘Training regions for the color classifier’
    disp_message (WindowHandle, Message, ‘window’, 12, 12, ‘black’, ‘true’)
    disp_continue_message (WindowHandle, ‘black’, ‘true’)
  • 程序停止运行,便于观察
    stop ()
  • 创建MLP分类器,并添加分类样本
  • create_class_mlp( : : 输入维度数量, 隐藏单位数, 输出类别数, 输出函数类型, 预处理类型, 预处理参数, 迭代次数 : MLP句柄)
    create_class_mlp (3, 3, 4, ‘softmax’, ‘principal_components’, 3, 42, MLPHandle)
  • 为MLP添加训练样本
  • add_samples_image_class_mlp(图像, 不同类的区域: : MLP句柄 : )
    add_samples_image_class_mlp (Image, Classes, MLPHandle)
    dev_display (Image)
    Message := ‘Training …’
    disp_message (WindowHandle, Message, ‘window’, 12, 12, ‘black’, ‘true’)
  • 训练分类器
  • train_class_mlp( : : MLP句柄, 最大迭代次数, 权重差异阈值, 误差差异阈值: 平均误差, 平均误差Log)
    train_class_mlp (MLPHandle, 200, 1, 0.01, Error, ErrorLog)
    Message := Message + ’ ready.’
    Message[1] := ‘Segment image using the classifier …’
    disp_message (WindowHandle, Message, ‘window’, 12, 12, ‘black’, ‘true’)
  • 分割图像
  • classify_image_class_mlp(图像 : 分割结果: MLP句柄, 拒绝分类区域阈值: )
    classify_image_class_mlp (Image, ClassRegions, MLPHandle, 0.5)
  • 使用区域的平均灰度值填充图像
    region_to_mean (ClassRegions, Image, ImageClass)
    dev_display (ImageClass)
    Message[1] := Message[1] + ’ ready.’
    disp_message (WindowHandle, Message, ‘window’, 12, 12, ‘black’, ‘true’)
  • 清除句柄
    clear_class_mlp (MLPHandle)
    disp_continue_message (WindowHandle, ‘black’, ‘true’)
    stop ()
  • 下边分割了另几种颜色和上文一样
    gen_rectangle2 (Rejection, [193,66,261], [235,332,328], [-0.32,-1.45,-1.51], [33,34,60], [4,3,3])
    union1 (Rejection, Rejection)
    concat_obj (Classes, Rejection, Classes)
    dev_display (Image)
    dev_set_color (Color[0])
    dev_display (Deck)
    dev_set_color (Color[1])
    dev_display (Sea)
    dev_set_color (Color[2])
    dev_display (Walls)
    dev_set_color (Color[3])
    dev_display (Chimney)
    dev_set_color (Color[4])
    dev_display (Rejection)
    disp_message (WindowHandle, ‘Add a rejection class to improve the robustness of the classifier’, ‘window’, 12, 12, ‘black’, ‘true’)
    disp_continue_message (WindowHandle, ‘black’, ‘true’)
    stop ()
    dev_display (Image)
  • Create the classifier and add the samples
    create_class_mlp (3, 4, 5, ‘softmax’, ‘principal_components’, 3, 42, MLPHandle)
    add_samples_image_class_mlp (Image, Classes, MLPHandle)
  • Train the classifier
    Message := ‘Training the classifier with rejection class…’
    disp_message (WindowHandle, Message, ‘window’, 12, 12, ‘black’, ‘true’)
    train_class_mlp (MLPHandle, 200, 1, 0.01, Error, ErrorLog)
    Message := Message + ’ ready.’
    Message[1] := ‘Segment image using the classifier …’
    disp_message (WindowHandle, Message, ‘window’, 12, 12, ‘black’, ‘true’)
  • Segment (classify) the image
    classify_image_class_mlp (Image, ClassRegionsNotRejected, MLPHandle, 0.5)
  • Select every class except the rejection class.
    copy_obj (ClassRegionsNotRejected, ClassRegionsNotRejected, 1, 4)
  • Note that the black areas in the mean image correspond to the rejected pixels
    region_to_mean (ClassRegionsNotRejected, Image, ImageClassNotRejected)
    dev_display (ImageClassNotRejected)
    Message[1] := Message[1] + ’ ready.’
    disp_message (WindowHandle, Message, ‘window’, 12, 12, ‘black’, ‘true’)
    clear_class_mlp (MLPHandle)

处理思路

这个例子介绍了使用MLP分类器对彩色图片进行分类的例子,选取多通道图片的感兴趣区域与背景可以对多通道图片进行快速分类。

后记

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

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

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

相关文章

Expo大作战(十二)--expo中的自定义样式Custom font,以及expo中的路由RouteNavigation

简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻个人修改补充…

悬浮按钮

效果图 //将dp转换为px public static int dip2px(Context context, float dpValue) {final float scale context.getResources().getDisplayMetrics().density;return (int) (dpValue * scale 0.5f); }//浮动图片监听 private void initListener() {//弹出对话框jianwen.set…

HALCON示例程序classify_image_class_svm.hdev使用SVM分类器对多通道图像进行分类

HALCON示例程序classify_image_class_svm.hdev使用SVM分类器对多通道图像进行分类 示例程序源码(加注释) 由于关于SVM分类器的使用之前的贴子介绍过,所以关于SVM的函数,直接点击函数可跳转到之前的介绍贴子。 显示函数解释 dev…

React Native实现NbaApp

rnNba 介绍 本项目为react-native构建的Nba App 设计灵感参考于:灵感来源( 其实就是参考样式 功能简单了很多,因为比较懒233333 功能 nba比分查询球员数据查询球队排名查询项目地址

图像坐标:我想和世界坐标谈谈(A) 【计算机视觉学习笔记--双目视觉几何框架系列】

玉米竭力用轻松具体的描述来讲述双目三维重建中的一些数学问题。希望这样的方式让大家以一个轻松的心态阅读玉米的《计算机视觉学习笔记》双目视觉数学架构系列博客。这个系列博客旨在捋顺一下已标定的双目视觉中的数学主线。数学推导是有着几分枯燥的,但奇妙的计算…

冲刺总结博客

项目预期计划 完美的完成我们的耿丹师生基本信息管理系统,可以实现增删改查等功能,能运用到我们学校里去。 实际进展 实现了增删改查功能,但是要是真的运用到学校中去,功能还是太单一。 过程体会 这个项目是我们小组成立之后&…

img

转载于:https://www.cnblogs.com/SoulCode/p/6508720.html

HALCON示例程序clip.hdev曲别针方向识别

HALCON示例程序clip.hdev曲别针方向识别 示例程序源码(加注释) 关于显示类函数解释 dev_update_window (‘off’) 读入图片 read_image (Clip, ‘clip’) 获得图片尺寸大小 get_image_size (Clip, Width, Height) dev_close_window () dev_open_windo…

图像坐标:我想和世界坐标谈谈(B)

二、图像坐标:我想和世界坐标谈谈(B) 玉米将在这篇博文中,对图像坐标与世界坐标的这场对话中涉及的第二个问题:谈话方式,进行总结。世界坐标是怎样变换进摄像机,投影成图像坐标的呢? 玉米做了一个简单的图示…

c#基础 函数

函数 就是方法 独立完成某项功能的一个个体 函数的的三个好处:1、提高代码的重用性。2、提高功能开发的效率,3.提高代码的可维护性。 函数也分为 固定功能函数, 高度抽象函数。高度抽象函数应用比较广泛, 函数的四要素&#…

【Android】Fragment的简单笔记

被虐了,做某公司笔试时,发现自己连个Fragment的生命周期都写不详细。平时敲代码,有开发工具的便利,有网上各大神的文章,就算忘了也很容易的可以查到,但当要自己不借助外界,却发现自己似乎对该知…

HALCON示例程序color_fuses.hdev通过颜色对保险丝进行分类

HALCON示例程序color_fuses.hdev通过颜色对保险丝进行分类 示例程序源码(加注释) 关于显示类函数解释 dev_update_window (‘off’)定义字符串变量并初始化 FuseColors : [‘Orange’,‘Red’,‘Blue’,‘Yellow’,‘Green’] FuseTypes : [5,10,15,20…

三、致敬“张正友标定”

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

Using KernelShark to analyze the real-time scheduler【转】

转自:https://lwn.net/Articles/425583/ This article brought to you by LWN subscribers Subscribers to LWN.net made this article — and everything that surrounds it — possible. If you appreciate our content, please buy a subscription and make the …

无缝滚动的算法

一早上的时间做了一个简单的无缝滚动,遇到的问题特别的多,而且对无缝滚动的算法也不是特别的清楚。 无缝滚动效果的原理:就是几个图片 浮动成为一排;然后让图片滚动,正常情况下图片滚完,就留下了后面的空白…

ACM题目————一笔画问题

描述 zyc从小就比较喜欢玩一些小游戏&#xff0c;其中就包括画一笔画&#xff0c;他想请你帮他写一个程序&#xff0c;判断一个图是否能够用一笔画下来。 规定&#xff0c;所有的边都只能画一次&#xff0c;不能重复画。 输入第一行只有一个正整数N(N<10)表示测试数据的组数…

HALCON示例程序color_fuses_lut_trans.hdev通过颜色对保险丝进行分类

HALCON示例程序color_fuses_lut_trans.hdev通过颜色对保险丝进行分类 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 dev_update_off ()定义变量并初始化&#xff0c;这些变量都是下边识别要用到的 FuseColors : [‘Orange’,‘Red’,‘Blue’,‘Yellow’,…

上海电驱动

从行业前景上来说还可以&#xff0c;但这个公司不行&#xff0c;公司各种坑&#xff0c;从上到下各种腐败&#xff0c;打酱油的人比较多&#xff0c;在薪资方面除了技术部稍好一点&#xff0c;其他部门我建议你最好别去了&#xff0c;整体上这个公司员工没幸福感&#xff01;只…

1056. 组合数的和(15)

1056. 组合数的和(15) 时间限制400 ms内存限制65536 kB乙级练习题解目录给定N个非0的个位数字&#xff0c;用其中任意2个数字都可以组合成1个2位的数字。要求所有可能组合出来的2位数字的和。例如给定2、5、8&#xff0c;则可以组合出&#xff1a;25、28、52、58、82、85&#…

3、时间和随机数

一、时间 1.1 使用Calendar/[ˈkləndɚ]/类获取时间 1.1.1 常用方法 (1)public static Calendar getInstance&#xff08;&#xff09;: 使用默认时区和语言环境获取一个基于当前时间的Calendar对象。 (2)public int get(int field) 返回给定日历字段表示的日历部分的数字…