VisionPro笔记:色彩区分

VisionPro:色彩区分

来自:blog.sina.com.cn/yangchao168

利用色彩来区分物体这类的项目没做过,总觉得很难,尤其是涉及到RGB和HSI等。看到VisionPro中有这种实例,觉得很有意思。

1)声明变量:

Private mTool as CogColorSegmenterTool

Private mImageFileTool as CogImageFileTool

Private mColorRangesInitialized as Boolean

2) 实例化mTool和mImageFileTool之后,加载图像并显示,接下来就是初始化Color Range并把它们添加到ColorCollection工具中。

实际区分所有的颜色很难,这里采用CogSimpleColor

Dim defaultColor as CogSimpleColor

defaultColor=new CogSimpleColor(CogImageColorSpaceConstants.RGB)

定义两种黄色

Dim colorRangeYellow1 as CogColorRangeItem

  原始图像

colorRangeYwllow1=new CogColorRangeItem(defaultColor)

利用Norminal,Low/High tolerance 和softness来填充每个Plane

colorRangeYellow1.PlaneRange0.Update(229, -81, 26, 0)

colorRangeYellow1.PlaneRange1.Update(227, -100.2, 28, 0)

colorRangeYellow1.PlaneRange2.Update(49, -33.3, 36.7, 0)

给Segment Tool添加这种颜色

mTool.RunParams.ColorRangeCollection.Add(colorRangeYellow1)

接下来是第二种黄色

Dim colorRangeYellow2 As CogColorRangeItem colorRangeYellow2 = New CogColorRangeItem(defaultColor) colorRangeYellow2.PlaneRange0.Update(130, -29.8, 23.7, 0) colorRangeYellow2.PlaneRange1.Update(122, -28.1, 32.7, 0) colorRangeYellow2.PlaneRange2.Update(22, -11.8, 11.8, 0) mTool.RunParams.ColorRangeCollection.Add(colorRangeYellow2)

  利用黄色区分的结果

定义3种黄色

Dim colorRangeRed1 As CogColorRangeItem colorRangeRed1 = New CogColorRangeItem(defaultColor) colorRangeRed1.PlaneRange0.Update(109, -28.4, 33.8, 0) colorRangeRed1.PlaneRange1.Update(34, -20.8, 17.8, 0) colorRangeRed1.PlaneRange2.Update(11, -8.7, 10.2, 0) colorRangeRed1.Selected = False mTool.RunParams.ColorRangeCollection.Add(colorRangeRed1)

默认选择黄色,所以对于红色的Selected属性设为False。

。。。

在初始化所有的颜色后

mColorRangesInitialized =true   ‘可以作为后续的判断条件

3)颜色选择

如果选择黄色

mTool.RunParams.ColorRangeCollection.Item(0).Selected=true

  利用红色区分的结果

mTool.RunParams.ColorRangeCollection.Item(1).Selected=true

如果选择红色,可以设定Item(2),(3),(4)为Selected。

4)区分

mTool.inputImage=InputImage

mTool.Run()

输出结果图像

If (mTool.RunStatus.Result.Equals(CogToolResultConstants.Accept))  Then    CogDisplaySegmentImage.Image = mTool.Result  ‘显示图像

Else    CogDisplaySegmentImage.Image = Nothing   ’结果有误 End If

  利用黄红区分的结果

时间: 2024-10-05 04:25:11

VisionPro笔记:色彩区分的相关文章

Android 5.0特性

虽然此前Google对其已经做过了比较深入的介绍,但作为一个如此重要的升级版本,更新内容自然是海量的. Google今天很贴心地在官网上放出了Android 5.0正式版的完整更新日志,涵盖了升级的方方面面,不过说实话也只是一些重要的.大面上的概略更新介绍,还有更多细节等待挖掘. 1.Material Design 醒目的.多彩的.快速响应的UI设计,可为你所有的设备带来一致的直觉体验. - 响应快速.自然流畅的动作,真实的光照和阴影,熟悉的视觉元素,设备导航更加轻而易举. - 惊艳的新色彩,凸

SQL在Oracle内部的具体处理流程

下图显示了SQL在Oracle内部处理的一般阶段:解析.优化.产生行源和执行.数据库可能会忽略某些步骤,这取决于具体的语句.                                                                                                        1,SQL解析 SQL处理的第一阶段就是SQL解析.当应用程序发出SQL语句时,该应用程序向数据库发出一个解析调用,以准备执行该语句,解析调用会打开或创建一个游标,它是

交互设计实用指南系列(4)—简洁清晰,自然易懂

链接:http://ued.taobao.org/blog/2009/12/simple/ 我们生活在信息繁杂的社会,尤其是在互联网时代,人们开始通过网络开始接触越来越多的信息,那么,如何获取/传递有效而准确的信息将非常重要.在网页交互设计中,我们提出:信息获取和传达的过程必须是简洁清晰,自然易懂.这样用户才能够有效的获取这些信息,并迅速作出决定. 1.什么是“简洁自然,清晰易懂”? 简洁清晰:使信息最简化“少即是多”.提倡使用最少的元素来表达最多的信息.如果信息繁杂,将使用户承担大量的信息负担

Android5.0更新内容简介

2014/6/26 凌晨Google IO 2014大会准时开幕,在本次大会上可以说发布出很多项目,发布的产品非常少.那么重点介绍的当然是我们最新的Android 5.0系统,本次Android 5.0系统代号为Lollipop(棒棒糖),所以大家也很亲切的称呼它为Android L系统. 那么Android 5.0都做出哪些改变或是升级呢? 1.全新的Material Design设计语言:在新系统的界面变的更加趋于扁平化,不仅如此,这样趋于扁平化的设计也将会在所有的谷歌产品中体现出来; --

Android学习系列(23)--App主界面实现

在上篇文章<Android学习系列(22)--App主界面比较>中我们浅略的分析了几个主界面布局,选了一个最大众化的经典布局.今天我们就这个经典布局,用代码具体的实现它. 1.预览图先看下最终的界面设计图:    上面顶部是一个9patch背景图片+标题文字:下面底部是5个tab标签,表示应用的5大模块.中间内容部分则是各个模块的具体内容,可以再分类,或者直接显示内容. 2.准备素材按照上篇文章的界面,我们需要事先提供两大方面的素材:顶部+底部.顶部的素材非常简单,最重要的是背景(9patch

Android App界面

Android学习系列(23)--App主界面实现 转载http://www.cnblogs.com/qianxudetianxia/archive/2011/09/03/2155875.html 在上篇文章<Android学习系列(22)--App主界面比较>中我们浅略的分析了几个主界面布局,选了一个最大众化的经典布局.今天我们就这个经典布局,用代码具体的实现它. 1.预览图先看下最终的界面设计图:    上面顶部是一个9patch背景图片+标题文字:下面底部是5个tab标签,表示应用的5大

缅甸华纳娱乐 缅甸华纳国际15687949443 办理开户文章管理系统(带手机版)

众所周知,华纳娱乐.华纳国际15687949443 办理开户体系特色功用介绍: 1.按钮功用: 按钮色彩分为两种,一种是蓝色,一种是赤色.蓝色按钮是添加.修正之类较为安全,不会形成数据丢掉的功用.赤色按钮是删去.恢复之类若误操作会形成数据丢掉的功用,故按钮运用色彩区分及合作对话框提示会最大程度确保操作准确性. 2.单行文本框: 当填写完表单时,将光标定位在单行文本框中敲击回车键,可替代点击提交表单按钮的功用.此功用可方便用户快速提交表单. 3.复选框与单选框: 在选中复选框或单选框时,为了添加鼠

C语言学习笔记(6):如何从变量声明的表面上来区分指针数组和数组指针

举例:int *p[5]是指针数组int (*p)[5]是数组指针区分两者只要看变量名p周围的修饰符即可. 这里要明确两点:1.不论int *p[5]还是int (*p)[5]都不应该看成一个整体,而应该看成一些修饰符来修饰变量p,从而使p得到准确定义:2.[]的优先级要比*高,相同优先级修饰符,采取从左向右的编译方式. *p[5]由于[]优先级高所以[]先修饰变量名p,所以p是一个数组名,然后再看其它修饰符,可以发现是一个int * 类型的数组,即p为指针数组. (*P)[5]由于()和[]两

笔记:C++重载++前后区分

a++ ++a ++有2种方式,那么在重载++的时候要怎么区分: 前置: T& operator++(){ do something return *this; } 后置: const T operator++(int){ T tmp = *this; ++(*this); return tmp; } 区别主要在: 1.返回值 2.函数参数