上位机MFC工业视觉实现电路版金手指间距测量项目源代码
这个项目是个人私下接的一个工业视觉项目,
主要功能是通过视觉算法实现两电路版金手指间距的计算。
根据计算出的毫米米让执行机构将两电路板对齐。
项目以动态库的形式发布给客户使用。
附件内工程项目对应为DetectDist,集成类为CDetectDistanceAlgorithm。
类的主要代码如下
- class CDetectDistanceAlgorithm : public CObject
- {
- private:
- HTuple m_hvAcqHandle;//相机句柄;
- HObject m_hoImage;//图片对应;
- HWND m_hWnd; //显示用窗口;
- CString m_sLogPath; //log文件路径;
- CString m_sCaliPath; //标定文件路径;
- public:
- CDetectDistanceAlgorithm();
- virtual ~CDetectDistanceAlgorithm();
- void PrintErrors(CString sError);
- bool TakePicture();//take a picture to show;
- bool ReadPicture(CString sPicName);
- bool SetWindow(HWND hWnd);//which window to show picture
- bool SaveImage(CString sImageType,CString sImageName);
- //
- bool GetUMpPix(int nPitch,double &dbUMpPix);//不透明;
- bool GetDistance(double dbUMpPix,double &dbDistance);//不透明;
- bool GetUMpPix1(int nPitch,double &dbUMpPix);//透明;
- bool GetDistance1(double dbUMpPix,double &dbDistance);//透明;
- bool GetUMpPix2(int nPitch,double &dbUMpPix);//第三版;
- bool GetDistance2(double dbUMpPix,double &dbDistance);//第三版;
- private:
- bool IsFuckingEverythingOK();
- void get_rectangle2_points (HTuple hv_CenterY, HTuple hv_CenterX, HTuple hv_Phi,
- HTuple hv_Len1, HTuple hv_Len2, HTuple *hv_CornerY, HTuple *hv_CornerX, HTuple *hv_LineCenterY,
- HTuple *hv_LineCenterX);
- void OpenWindowFitImage (HObject ho_Image, HTuple hv_Row, HTuple hv_Column,
- HTuple hv_WidthLimit, HTuple hv_HeightLimit, HWND hParent,HTuple *hv_WindowHandle);
- void OpenImageFitWindow(HObject ho_Image,HWND hWnd,bool bReopen=false);
- void gen_arrow_contour_xld (HObject *ho_Arrow, HTuple hv_Row1, HTuple hv_Column1,
- HTuple hv_Row2, HTuple hv_Column2, HTuple hv_HeadLength, HTuple hv_HeadWidth);
- void gen_line (HObject *ho_Line, HTuple hv_Row, HTuple hv_Col, HTuple hv_Phi, HTuple hv_Len, HTuple hv_RegionOrXLD);
- };
复制代码 上图为界面实例,可供测试用。
在打开的设置窗口可以打开附件内的图片进行标定与设置。
点击计算可以计算出两电路板从右到左数的第一金手指间距。
附件打包有MFC视觉算法工程源代码,
调用算法的MFC和C#界面工程源代码。
HALCON的源代码。
大量的产品图片供测试。
上位机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
有需要的朋友可以下载参考。
下载地址为:
下载后,两附件放在一起解压。
上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例 经历1年的编程与录制点击进入查看
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|