上位机MFC工业视觉实现工业二维码识别项目源代码
这个项目也是个人私下接的一个工业视觉小项目。
主要实现工业生产中
QR Code, Micro QR Code,PDF417,Aztec Code,Data Matrix ECC 200
类型的二维码识别。
客户只使用到了Data Matrix ECC 200类型的二维码识别。
所以其他类型的识别功能就赠送了。
例程也是通过动态库形式提供给用户使用。
但附件也有MFC和C#的界面的工程,如上图。
通过这个界面也打开图片进行测试。
C#具体如何调用 MFC编写的工业视觉代码,
可以下载附件打开看看,
下面是关键的代码
- namespace Demo
- {
- public partial class Form1 : Form
- {
- [DllImport("DetectDist.dll", EntryPoint = "InitModule", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
- public static extern void InitModule();
- [DllImport("DetectDist.dll", EntryPoint = "ReleaseModule", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
- public static extern void ReleaseModule();
- [DllImport("DetectDist.dll", EntryPoint = "ReadPicture", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
- public static extern bool ReadPicture([MarshalAs(UnmanagedType.LPStr)]string sPicName);
- [DllImport("DetectDist.dll", EntryPoint = "SetWindow", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
- public static extern bool SetWindow(IntPtr hWnd);
- [DllImport("DetectDist.dll", EntryPoint = "GetDataCode", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
- public static extern bool GetDataCode([Out, MarshalAs(UnmanagedType.LPStr)]StringBuilder sDataCode, [MarshalAs(UnmanagedType.LPStr)]string sDataCodeType, [MarshalAs(UnmanagedType.LPStr)]string sDetectMethod);
-
-
-
- public Form1()
- {
- InitializeComponent();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- InitModule();
- SetWindow(button4.Handle);
- button2_Click(sender, e);
- }
- static int nIndex = 0;
- private void button2_Click(object sender, EventArgs e)
- {
- nIndex++;
- if (nIndex > 5)
- nIndex = 0;
- string sPicName;
- sPicName = "Pics//" + nIndex.ToString() + ".bmp";//格式如:" C://1.bmp";
- if (!File.Exists(sPicName))
- return;
- bool bResult = ReadPicture(sPicName);
- }
- private void button3_Click(object sender, EventArgs e)
- {
- /*
- *sDataCodeType 二维码类型当前支持有:
- * QR Code
- * Micro QR Code
- * PDF417
- * Aztec Code
- * Data Matrix ECC 200
- */
- string sDataCodeType = "Data Matrix ECC 200";
- /*
- * cDetectMethod 二维码识别方法有:
- * standard_recognition
- * enhanced_recognition
- * maximum_recognition
- * 根据成像效果选择不同方法,建议standard_recognition。
- * 处理时间:standard_recognition<enhanced_recognition<maximum_recognition
- */
- string cDetectMethod = "enhanced_recognition";//"standard_recognition";
- StringBuilder sDataCode = new StringBuilder(255);
- bool bResult = GetDataCode(sDataCode, sDataCodeType, cDetectMethod);
- if (bResult)
- textBox1.Text = sDataCode.ToString();
- }
- private void Form1_FormClosed(object sender, FormClosedEventArgs e)
- {
- ReleaseModule();
- }
- }
- }
复制代码 界面例程运行后,
可以点击初始化库。
再点击加载二维码图片,
点击识别二维码按钮。
算法会识别出二维码内容,并显示出来。
附件包含测试图片,
MFC,C#工程源代码。
halcon
上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例 经历1年的编程与录制点击进入查看
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|