QQ登录

只需一步,快速开始

上位机MFC工业视觉实现电路版金手指间距测量项目源代码

[ 复制链接 ]

上位机MFC工业视觉实现电路版金手指间距测量项目源代码

上位机MFC工业视觉实现电路版金手指间距测量项目源代码

这个项目是个人私下接的一个工业视觉项目,
主要功能是通过视觉算法实现两电路版金手指间距的计算。
根据计算出的毫米米让执行机构将两电路板对齐。
项目以动态库的形式发布给客户使用。
附件内工程项目对应为DetectDist,集成类为CDetectDistanceAlgorithm。
类的主要代码如下
  1. class CDetectDistanceAlgorithm : public CObject
  2. {
  3. private:
  4.         HTuple    m_hvAcqHandle;//相机句柄;
  5.         HObject   m_hoImage;//图片对应;
  6.         HWND      m_hWnd; //显示用窗口;
  7.         CString   m_sLogPath;             //log文件路径;
  8.         CString   m_sCaliPath;            //标定文件路径;
  9. public:
  10.         CDetectDistanceAlgorithm();
  11.         virtual ~CDetectDistanceAlgorithm();
  12.         void PrintErrors(CString sError);
  13.         bool TakePicture();//take a picture to show;
  14.         bool ReadPicture(CString sPicName);
  15.         bool SetWindow(HWND hWnd);//which window to show picture
  16.         bool SaveImage(CString sImageType,CString sImageName);
  17.         //
  18.         bool GetUMpPix(int nPitch,double &dbUMpPix);//不透明;
  19.         bool GetDistance(double dbUMpPix,double &dbDistance);//不透明;
  20.         bool GetUMpPix1(int nPitch,double &dbUMpPix);//透明;
  21.         bool GetDistance1(double dbUMpPix,double &dbDistance);//透明;

  22.         bool GetUMpPix2(int nPitch,double &dbUMpPix);//第三版;
  23.         bool GetDistance2(double dbUMpPix,double &dbDistance);//第三版;
  24. private:
  25.         bool IsFuckingEverythingOK();
  26.         void get_rectangle2_points (HTuple hv_CenterY, HTuple hv_CenterX, HTuple hv_Phi,
  27.                 HTuple hv_Len1, HTuple hv_Len2, HTuple *hv_CornerY, HTuple *hv_CornerX, HTuple *hv_LineCenterY,
  28.                 HTuple *hv_LineCenterX);

  29.         void OpenWindowFitImage (HObject ho_Image, HTuple hv_Row, HTuple hv_Column,
  30.                 HTuple hv_WidthLimit, HTuple hv_HeightLimit,  HWND hParent,HTuple *hv_WindowHandle);
  31.         void OpenImageFitWindow(HObject ho_Image,HWND hWnd,bool bReopen=false);
  32.         void gen_arrow_contour_xld (HObject *ho_Arrow, HTuple hv_Row1, HTuple hv_Column1,
  33.                 HTuple hv_Row2, HTuple hv_Column2, HTuple hv_HeadLength, HTuple hv_HeadWidth);

  34.         void gen_line (HObject *ho_Line, HTuple hv_Row, HTuple hv_Col, HTuple hv_Phi, HTuple hv_Len, HTuple hv_RegionOrXLD);
  35. };
复制代码
上图为界面实例,可供测试用。
在打开的设置窗口可以打开附件内的图片进行标定与设置。
点击计算可以计算出两电路板从右到左数的第一金手指间距。
附件打包有MFC视觉算法工程源代码,
调用算法的MFC和C#界面工程源代码。
HALCON的源代码。
大量的产品图片供测试。

上位机MFC工业视觉实现电路版金手指间距测量项目源代码

上位机MFC工业视觉实现电路版金手指间距测量项目源代码

在注意的小点。
1.要注意编译器与系统。
例程在WIN10,WIN7系统上,使用VS2010编写与编译。
2.要注意HALCON的版本号。
Halcon使用的版本是17.12,64位。
可以在百度搜索下载,也可以联系我分享。
3.halcon的动态库未打包。
halcon的动态库比较点空间,
附件就不附加其动态库了。
下载附件后,可以将halcon安装目录的以下几个文件放置到例程的同级目录运行例程。
hAcqDirectFile.dll
hAcqDirectShow.dll
halcon.dll
halconcpp.dll
hcanvas.dll
例程以动态库的形式使用,
正常编译会生成DetectDist.dll,DetectDist.lib供使用。
此项目是一个外接项目,
有提供C#和MFC两版本的界面例程来调用动态库。
4.编译出错。
动态库工程在编译时要包含halcon的头文件与库文件目录。
例如安装在D:\Program Files。
则要包含如下目录。
D:\Program Files\MVTec\HALCON-17.12-Progress\include
D:\Program Files\MVTec\HALCON-17.12-Progress\include\halconcpp
D:\Program Files\MVTec\HALCON-17.12-Progress\lib\x64-win64


有需要的朋友可以下载参考。
下载地址为:
下载后,两附件放在一起解压。
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:DetectDistance.part2.rar 
文件大小:7.49 MB  售价:50金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


请点击此处下载

查看状态:已购买或有权限

您的用户组是:游客

文件名称:DetectDistance.part1.rar 
文件大小:9 MB 
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


  

上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例

  

经历1年的编程与录制点击进入查看


  

halcon从自学到接项目视频教程,另外再赠送全网最全资源  

  

欢迎围观我录制的一套halcon自学视频教程(进入)


  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索