转载

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

VisionPro笔记:色彩区分 原始图像

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)

VisionPro笔记:色彩区分 利用黄色区分的结果

定义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

VisionPro笔记:色彩区分 利用红色区分的结果

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

VisionPro笔记:色彩区分 利用黄红区分的结果

正文到此结束
Loading...