CogBlobTool斑点工具的编程方法整理

//********************************************运行参数设置**RunParams*************************************  
//********************************************                       *************************************  

//设置->分段->模式   
SegmentationParams.Mode = CogBlobSegmentationModeConstants.{
	Map;                                                     //映射
	HardFixedThreshold;                               	 	 //硬阈值(固定)
	HardDynamicThreshold;                             		 //硬阈值(动态)
	HardRelativeThreshold ;                           		 //硬阈值(相对)
	SoftFixedThreshold;                               		 //软阈值(固定)
	SoftRelativeThreshold;                            		 //软阈值(相对)
	SubtractionImage;                                 		 //剪影图像	
	None;                                             		 //无
}

//设置->分段->极性
SegmentationParams.Polarity = CogBlobSegmentationPolarityConstants.{
	DarkBlobs;                                        		 //白底黑点
	LightBlobs;                                       		 //黑底白点
}

//设置->连通性->模式
ConnectivityMode = CogBlobConnectivityModeConstants.{
	Labeled;                                          		 //已标记
	GreyScale;                                        		 //灰度
	WholeImageGreyScale;                              		 //整个图像
}

//设置->连通性->清除
ConnectivityCleanup = CogBlobConnectivityCleanupConstants.{
	Prune;                                            		 //修剪
	Fill;                                             		 //填充
	None;                                             		 //无
}

//设置->连通性->最小面积
ConnectivityMinPixels = 整数                          		 //设置最小面积

//区域->区域形状
Region = {
	CogCircle ;                                       		 //圆形
	CogEllipse ;                                      		 //椭圆
	CogPolygon ;                                      		 //多边形
	CogRectangle ;                                    		 //矩形
	CogRectangleAffine ;                              		 //矩形仿射
	CogCircularAnnulusSection ;                       		 //环形截面
	CogEllipcalAnnulusSection ;                       		 //椭圆翼剖面
	null;                                             		 //使用整个图像
}

//测得尺寸->属性   固定值
RuntimeMeasures.Item[0].Measure = Area ;  
RuntimeMeasures.Item[1].Measure = CenterMassX ;  
RuntimeMeasures.Item[2].Measure = CenterMassY ;  
RuntimeMeasures.Item[3].Measure = Lable ;  

//测得尺寸->尺寸/过滤
RunTimeMeasures.Item[0].Mode = CogBlobMeasureModeConstants.{
	Filter;                                           		 //过滤
	None;                                             		 //网格
	PreCompute;                                       		 //运行时
}

//测得尺寸->范围
RuntimeMeasures.Item[0].FilterMode = CogBlobFilterModeConstants.{
	IncludeBlobsInRange;                              		 //包含
	ExcludeBlobsInRange;                              		 //排除
}
RuntimeMeasures.Item[0].FilterRangeHigh = double类型  		 //高
RuntimeMeasures.Item[0].FilterRangLow =  double类型   		 //低


//Results
//结果
GetBlobs().Count                                      		 //结果数量
GetBlobs().Item[0].Area                               		 //面积
GetBlobs().Item[0].CenterMassX                        		 //x轴坐标
GetBlobs().Item[0].CenterMassY                        		 //y轴坐标



//*****************************************************例子**Example*******************************************
//*****************************************************             *******************************************  


//变量声明
CogImageCollection images = new CogImageCollection();    											//图片的集合
CogBlobTool m_blob = new CogBlobTool();                  											//斑点工具
CogBlobMeasure m_measure = new CogBlobMeasure();                                                    //筛选属性1
CogBlobMeasure m_measure2 = new CogBlobMeasure();													//筛选属性2
CogRectangle m_rectangle = new CogRectangle();          											//创建一个矩形区域
int m_PicNum;        																				//图片数量
int m_PerNum = 0;    																				//当前运行图片序号
double nPositionX;                                                                                  //X轴坐标
double nPositionY;																					//Y轴坐标                                                                                   


//加载图像源
CogImageFile ImageFiles = new CogImageFile();                                                       //创建图像源
images.Clear();
m_PicNum = 0;
using (FolderBrowserDialog lvse = new FolderBrowserDialog())                                        //打开本地文件夹
{
	if (lvse.ShowDialog() == DialogResult.OK)
	{
		DirectoryInfo dinfo = new DirectoryInfo(lvse.SelectedPath);
		FileInfo[] finfo = dinfo.GetFiles();
		foreach (FileInfo file in finfo)
		{
			ImageFiles.Open(file.FullName, CogImageFileModeConstants.Read);
			ICogImage image = ImageFiles[0];                                                        //将图片放入images容器中
			images.Add(image);
			m_PicNum++;
		}
	}
}
cogRecordDisplay1.Image = images[0];
cogRecordDisplay1.Fit(true);

	
//添加图像选择区域   
m_rectangle.GraphicDOFEnable = CogRectangleDOFConstants.All;                                        //启用对矩形旋转的交互式操作。
m_rectangle.Interactive = true;                                                                     //交互式属性允许选择此图形对象。
//m_rectangle.Width = 240;                                     										//矩形宽
//m_rectangle.Height = 240;                                    										//矩形高
//m_rectangle.X = 89.75;                                       										//矩形顶角X轴坐标
//m_rectangle.Y = 146.891;                                     										//矩形顶胶Y轴坐标
m_blob.Region = m_rectangle;                                                                        //m_blob形状为为矩形
cogRecordDisplay1.InteractiveGraphics.Clear();
cogRecordDisplay1.InteractiveGraphics.Add((ICogGraphicInteractive)m_blob.Region, "gu", false);      //画面上显示区域范围 


//运行处理
m_blob.InputImage = images[m_PerNum];                        										//输入图像源
m_blob.RunParams.SegmentationParams.Mode = CogBlobSegmentationModeConstants.HardDynamicThreshold;   //硬阈值(动态)
m_blob.RunParams.SegmentationParams.Polarity = CogBlobSegmentationPolarityConstants.DarkBlobs;      //白底黑点
m_blob.RunParams.ConnectivityMode = CogBlobConnectivityModeConstants.GreyScale;       				//灰度
m_blob.RunParams.ConnectivityCleanup = CogBlobConnectivityCleanupConstants.Fill;      				//填充
m_blob.RunParams.ConnectivityMinPixels = 10;                 										//设置最小面积   

m_blob.RunParams.RunTimeMeasures.Add(m_measure);             										//添加如下两种属性
m_blob.RunParams.RunTimeMeasures.Add(m_measure2);

m_blob.RunParams.RunTimeMeasures[0].Measure = CogBlobMeasureConstants.Area;
m_blob.RunParams.RunTimeMeasures[0].Mode = CogBlobMeasureModeConstants.Filter;        				//过滤
m_blob.RunParams.RunTimeMeasures[0].FilterMode = CogBlobFilterModeConstants.IncludeBlobsInRange;    //包含
m_blob.RunParams.RunTimeMeasures[0].FilterRangeLow = 1100;   										//下限
m_blob.RunParams.RunTimeMeasures[0].FilterRangeHigh = 1200;  										//上限

m_blob.RunParams.RunTimeMeasures[1].Measure = CogBlobMeasureConstants.Label;
m_blob.RunParams.RunTimeMeasures[1].Mode = CogBlobMeasureModeConstants.Filter;        				//过滤
m_blob.RunParams.RunTimeMeasures[1].FilterMode = CogBlobFilterModeConstants.IncludeBlobsInRange;    //包含
m_blob.RunParams.RunTimeMeasures[1].FilterRangeLow = 0.9;    										//下限
m_blob.RunParams.RunTimeMeasures[1].FilterRangeHigh = 1.1;   										//上限

m_blob.Run();   																					//运行


//获取结果
int num = m_blob.Results.GetBlobs().Count;                   										//结果数量
for (int i = 0; i <num; i++)
{
	nPositionX = m_blob.Results.GetBlobs()[i].CenterOfMassX; 										//X轴坐标
	nPositionY = m_blob.Results.GetBlobs()[i].CenterOfMassY; 										//Y轴坐标
}


 

  • 4
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: VisionPro斑点工具是一个用于自动检测和分类斑点工具,可以广泛应用于电子、食品、制药、汽车、半导体等行业中。以下是VisionPro斑点工具的详细介绍: 1. 斑点检测:该工具可以自动检测出图像中的所有斑点,并将其与背景区分开来。检测过程是基于图像的局部特征进行的,可以适应不同的光照条件、杂波和噪声等因素。 2. 斑点分类:检测到斑点后,该工具可以根据斑点的大小、形状、颜色等特征进行分类,以实现更精细的分析和处理。例如,可以将斑点分为黑色、白色、圆形、椭圆形等不同类别。 3. 斑点统计:该工具可以对检测到的斑点进行统计和分析,包括斑点的数量、大小、密度等指标。可以通过这些指标来评估图像质量、诊断缺陷、监测生产过程等。 4. 斑点标记:该工具可以将检测到的斑点标记在图像上,以便后续的处理和分析。标记可以包括图形、文字、颜色等多种形式,可以自定义设置。 5. 斑点管理:该工具可以对检测到的斑点进行管理和存储,包括保存斑点图像、记录斑点特征、导出统计数据等。可以通过这些功能来实现斑点的追踪、比较、分析等操作。 总之,VisionPro斑点工具是一个功能强大、易于使用的图像处理工具,可以帮助用户快速、准确地检测和分类斑点,并进行统计和管理。 ### 回答2: VisionPro斑点工具Cognex公司的一款机器视觉软件工具,用于检测和计数产品表面上的斑点斑点工具可以应用于各种行业,例如电子、医疗、食品等,可以有效地检测和定位斑点,帮助生产企业提高产品质量和生产效率。 首先,斑点工具具有高精度和高速度的特点。它采用先进的图像处理算法和检测技术,能够快速准确地检测出产品表面上的斑点,包括颜色、形状、面积、位置等方面的信息。 其次,斑点工具具备灵活的配置和使用方式。用户可以根据自己的需求进行工具的设置和调整,包括设置斑点的大小范围、颜色阈值、识别算法等参数。同时,工具还支持多个工具的组合使用,方便用户进行复杂斑点的检测任务。 此外,斑点工具还具有强大的检测功能和稳定性。它能够对产品表面上的斑点进行准确的分类和计数,并且可以快速识别并处理不同类别的斑点。同时,斑点工具还具备抗光照变化能力,可以在不同光照条件下稳定地进行斑点检测。 最后,斑点工具还具备友好的用户界面和强大的数据管理功能。用户可以通过直观的界面进行工具的设置和调整,并且可以实时监视和分析斑点的检测结果。此外,工具还支持数据的导入和导出,方便用户进行数据的管理和分析。 综上所述,VisionPro斑点工具是一款功能强大、易于使用和高效稳定的机器视觉工具。它可以帮助企业提高产品质量和生产效率,节省人力资源并降低生产成本。 ### 回答3: VisionPro斑点工具是一个用于检测和分类斑点的图像处理工具。它通常在工业自动化领域用于检测产品表面上的缺陷、斑点或污渍。 该工具的原理是通过图像处理算法和模式识别技术来分析和识别斑点。它可以在图像中自动检测出大小、形状、颜色等特征符合预定条件的斑点。 VisionPro斑点工具的使用步骤如下: 1. 图像采集:使用图像采集设备获取待检测的产品图像。 2. 图像预处理:对采集到的图像进行预处理,包括增强对比度、调整亮度等操作,以提高斑点的可见性。 3. 斑点定位:使用斑点工具在预处理后的图像中定位斑点。可以根据斑点的特征设置过滤条件,如斑点的最小/最大面积、形状、颜色范围等。 4. 斑点识别:根据预设的规则和模式,对定位到的斑点进行分类和判别。根据斑点的特征与预设的标准进行对比,判断斑点是否符合缺陷定义。 5. 结果分析:根据斑点工具的输出结果,对检测到的斑点进行统计和分析。可以得到斑点的数量、位置、大小等信息。 VisionPro斑点工具具有高精度、高速度和稳定性的特点。它可以快速准确地检测产品的缺陷,帮助厂商提高产品质量和生产效率。同时,它也可以减少人工操作的需求,降低生产成本。 该工具的应用范围广泛,可以用于检测电子产品、汽车零部件、食品包装等各种制造业。无论是小型企业还是大型生产线,都可以通过使用VisionPro斑点工具来改善产品质量和生产效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值