工控编程吧
标题:
上位机MFC工业视觉实现电路版金手指间距测量项目源代码
[打印本页]
作者:
qq263946146
时间:
2019-10-5 13:52
标题:
上位机MFC工业视觉实现电路版金手指间距测量项目源代码
(, 下载次数: 0)
上传
点击文件名下载附件
这个项目是个人私下接的一个工业视觉项目,
主要功能是通过视觉算法实现两电路版金手指间距的计算。
根据计算出的毫米米让执行机构将两电路板对齐。
项目以动态库的形式发布给客户使用。
附件内工程项目对应为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的源代码。
大量的产品图片供测试。
(, 下载次数: 1)
上传
点击文件名下载附件
在注意的小点。
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
有需要的朋友可以下载参考。
下载地址为:
下载后,两附件放在一起解压。
(, 下载次数: 1)
上传
点击文件名下载附件
(, 下载次数: 1)
上传
点击文件名下载附件
[MFC408]1[/MFC408]
[halcon]1[/halcon]
[weixinlianxi]1[/weixinlianxi]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4