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

 点击图片或使用键盘← →翻页   利用黄红区分的结果

 

 

posted @   可为测控  阅读(2600)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示