工控编程吧
标题:
上位机MFC工业视觉实现工业二维码识别项目源代码
[打印本页]
作者:
qq263946146
时间:
2019-10-5 14:16
标题:
上位机MFC工业视觉实现工业二维码识别项目源代码
(, 下载次数: 0)
上传
点击文件名下载附件
这个项目也是个人私下接的一个工业视觉小项目。
主要实现工业生产中
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
(, 下载次数: 1)
上传
点击文件名下载附件
[MFC408]1[/MFC408]
[halcon]1[/halcon]
[weixinlianxi]1[/weixinlianxi]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4