当前位置: 首页 > news >正文

有趣的网站代码短视频运营公司网站建设

有趣的网站代码,短视频运营公司网站建设,nodejs wordpress,昆山做网站公司visionpro案例: 轴承缺珠检测 项目概述思路以及解题过程1.图像预处理:使用CogIPOneImageTool对图像进行灰度化、去噪等预处理操作,以提高后续处理的准确性。2.特征提取:使用CogPMAlignTool提供的工具提取轴承的概念建特征3.图像校正: 使用Cog…

visionpro案例: 轴承缺珠检测

  • 项目概述
  • 思路以及解题过程
    • 1.图像预处理:使用CogIPOneImageTool对图像进行灰度化、去噪等预处理操作,以提高后续处理的准确性。
    • 2.特征提取:使用CogPMAlignTool提供的工具提取轴承的概念建特征
    • 3.图像校正: 使用CogFixtureTool,并把上面CogPMAlignTool找到的GetPose()传入进行位置矫正
    • 4.圆展开: CogFindCircleTool找圆并通过找到的圆心坐标对CogPolarUnwrapTool的圆心赋值将图像从笛卡尔坐标系转换到极坐标系
    • 5.模板匹配: 对展开后的图像进行模板匹配,匹配圆珠,没有匹配的地方则缺少,通过代码显示出来,并映射到原图中
    • 6.完整代码展示
  • 结论

项目概述

我们需要对下面轴承的缺珠情况进行检测,并且把缺珠的位置在图像上标记出来,效果如下:
在这里插入图片描述

思路以及解题过程

1.图像预处理:使用CogIPOneImageTool对图像进行灰度化、去噪等预处理操作,以提高后续处理的准确性。

在这里插入图片描述

2.特征提取:使用CogPMAlignTool提供的工具提取轴承的概念建特征

在这里插入图片描述

3.图像校正: 使用CogFixtureTool,并把上面CogPMAlignTool找到的GetPose()传入进行位置矫正

在这里插入图片描述

4.圆展开: CogFindCircleTool找圆并通过找到的圆心坐标对CogPolarUnwrapTool的圆心赋值将图像从笛卡尔坐标系转换到极坐标系

图1
在这里插入图片描述
在这里插入图片描述

5.模板匹配: 对展开后的图像进行模板匹配,匹配圆珠,没有匹配的地方则缺少,通过代码显示出来,并映射到原图中

在这里插入图片描述

6.完整代码展示

#region namespace imports
using System;
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.ToolBlock;
using Cognex.VisionPro3D;
using Cognex.VisionPro.ImageProcessing;
using Cognex.VisionPro.PMAlign;
using Cognex.VisionPro.CalibFix;
using Cognex.VisionPro.Caliper;
#endregionpublic class CogToolBlockAdvancedScript : CogToolBlockAdvancedScriptBase
{#region Private Member Variablesprivate Cognex.VisionPro.ToolBlock.CogToolBlock mToolBlock;#endregionCogGraphicCollection col = new CogGraphicCollection();/// <summary>/// Called when the parent tool is run./// Add code here to customize or replace the normal run behavior./// </summary>/// <param name="message">Sets the Message in the tool's RunStatus.</param>/// <param name="result">Sets the Result in the tool's RunStatus</param>/// <returns>True if the tool should run normally,///          False if GroupRun customizes run behavior</returns>public override bool GroupRun(ref string message, ref CogToolResultConstants result){// To let the execution stop in this script when a debugger is attached, uncomment the following lines.// #if DEBUG// if (System.Diagnostics.Debugger.IsAttached) System.Diagnostics.Debugger.Break();// #endifcol.Clear();CogPMAlignTool pm = mToolBlock.Tools["CogPMAlignTool2"] as CogPMAlignTool;CogPolarUnwrapTool Polar = mToolBlock.Tools["CogPolarUnwrapTool1"] as CogPolarUnwrapTool;//声明一个列表  用来储存X坐标List<double> listX = new List<double>();// Run each tool using the RunTool functionforeach(ICogTool tool in mToolBlock.Tools)mToolBlock.RunTool(tool, ref message, ref result);double y = 0,yTotal = 0;for(int i = 0 ; i < pm.Results.Count;i++){//将x坐标数据  添加到列表中listX.Add(pm.Results[i].GetPose().TranslationX);yTotal += pm.Results[i].GetPose().TranslationY;}//Y平均值y = yTotal / pm.Results.Count;//排序listX.Sort();//找缺陷的 比较逻辑for(int i = 0; i < listX.Count - 1;i++){if(listX[i+1] - listX[i] > 60){double x = (listX[i + 1] + listX[i]) / 2;double xIN,yIN;Polar.RunParams.GetInputPointFromOutputPoint(Polar.InputImage, Polar.Region, x, y, out xIN, out yIN);col.Add(CreateCircle(xIN,yIN));}}//第一个缺失if(listX[0]>40){double x = listX[0] - 40;double xIN,yIN;Polar.RunParams.GetInputPointFromOutputPoint(Polar.InputImage, Polar.Region, x, y, out xIN, out yIN);col.Add(CreateCircle(xIN,yIN));}//最后一个缺失if(listX[listX.Count-1] < 750){double x = listX[listX.Count-1] + 40;double xIN,yIN;Polar.RunParams.GetInputPointFromOutputPoint(Polar.InputImage, Polar.Region, x, y, out xIN, out yIN);col.Add(CreateCircle(xIN, yIN));}return false;}public CogCircle CreateCircle(double x,double y){CogCircle c = new CogCircle();c.CenterX = x;c.CenterY = y;c.Radius = 10;c.LineWidthInScreenPixels = 4;c.Color = CogColorConstants.Red;return c;}#region When the Current Run Record is Created/// <summary>/// Called when the current record may have changed and is being reconstructed/// </summary>/// <param name="currentRecord">/// The new currentRecord is available to be initialized or customized.</param>public override void ModifyCurrentRunRecord(Cognex.VisionPro.ICogRecord currentRecord){}#endregion#region When the Last Run Record is Created/// <summary>/// Called when the last run record may have changed and is being reconstructed/// </summary>/// <param name="lastRecord">/// The new last run record is available to be initialized or customized.</param>public override void ModifyLastRunRecord(Cognex.VisionPro.ICogRecord lastRecord){foreach(ICogGraphic g in col){mToolBlock.AddGraphicToRunRecord(g, lastRecord, "CogIPOneImageTool1.InputImage", "");}}#endregion#region When the Script is Initialized/// <summary>/// Perform any initialization required by your script here/// </summary>/// <param name="host">The host tool</param>public override void Initialize(Cognex.VisionPro.ToolGroup.CogToolGroup host){// DO NOT REMOVE - Call the base class implementation first - DO NOT REMOVEbase.Initialize(host);// Store a local copy of the script hostthis.mToolBlock = ((Cognex.VisionPro.ToolBlock.CogToolBlock)(host));}#endregion}

结论

通过上述步骤和控件的使用,可以实现对轴承的缺陷检测。代码中使用了Cognex VisionPro工具进行特征提取和缺陷识别,并在图像上标记缺陷位置。项目可以根据实际需求进行扩展和优化

http://www.dtcms.com/a/483395.html

相关文章:

  • 网站模板二次开发网站怎么投放广告
  • Symmetric functions and hall polynomials 1.1 总结
  • 学好网页设计与网站建设的意义北京的软件公司
  • TCP三次握手与四次挥手详解
  • C++智能指针解析
  • Java 大视界 -- Java 大数据中的时间序列预测算法在金融市场波动预测中的应用与优化
  • 如何看网站关键词用discuz做的手机网站
  • 使用spring-ai时遇到的一些问题
  • 基于 recorder-core 的实时音频流与声纹识别技术实践
  • 成都没有做网站的公司详谈电商网站建设四大流程
  • 找平面设计师网站网页传奇游戏下载
  • C语言--复杂数据类型
  • 如何用“内容+AI”组合拳赋能导购,实现品牌高效增长?
  • 扁平化网站设计趋势wordpress可视化编辑器 windows
  • 网站数据维护滨州网站建设公司报价
  • C++ 之 串口通讯封装类
  • WHAT - 前端性能指标(网络相关指标)
  • 阿里云服务器怎么建网站常德市网络科技有限公司
  • 工程记录:使用tello edu无人机进行计算机视觉工作(手势识别,yolo3搭载)
  • 河北seo网站设计网站视频放优酷里面怎么做
  • 频偏估计方法--快速傅里叶变换(FFT)估计法
  • Flutter---Container
  • 揭阳专业做网站公司深圳做网站价格
  • 整站优化 快速排名学做网站要学什么
  • 在 MSYS2(MINGW64)中安装 Python 和 pip 完全指南
  • 小语种网站建设 cover做网站需要报备什么
  • Windows共享的一些设置点
  • 有后台的网站模版wordpress音乐源码
  • 羊城杯 2025
  • 长沙低价网站建设长沙网站seo优化公司