设置首页收藏本站
开启左侧

[例程] halcon识别中文二维码内容乱码?

  [复制链接]
kunge98321 发表于 2017-10-23 21:01:38 | 显示全部楼层
路过 分享 希望以后用得上!
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
大凡光学,专注标定板提供
vivewen 发表于 2017-11-5 14:33:54 | 显示全部楼层
51Halcon 发表于 2017-10-19 17:52
你汉字在byte模式下解析肯定是乱码啊,你需要按照它正常的格式解析就可以了,不用管他在byte模式下是不是 ...

你好,按什么格式解析可以呢?
C#我遍历里系统所有编码,还是有个别乱码?跟汉字的奇偶数有关,奇数时还跟后面带不带字母有关:'(
HOperatorSet.SetSystem("filename_encoding", "utf8")
HOperatorSet.FindDataCode2d(ho_Image_Acq, out ho_SymbolXLDs, hv_DataCodeHandle, "train", "all", out hv_ResultHandles, out hv_DecodedDataStrings);
遍历代码:
StringBuilder sb = new StringBuilder();
                string source = hv_DecodedDataStrings;
                foreach (var e1 in Encoding.GetEncodings())
                {
                    foreach (var e2 in Encoding.GetEncodings())
                    {
                        byte[] unknow = Encoding.GetEncoding(e1.CodePage).GetBytes(source);
                        string result = Encoding.GetEncoding(e2.CodePage).GetString(unknow);
                        sb.AppendLine(string.Format("{0} => {1} : {2}", e1.CodePage, e2.CodePage, result));
                    }
                }
                File.WriteAllText("c:\\test.txt", sb.ToString());

求指教啊
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
vivewen 发表于 2017-11-5 14:37:12 | 显示全部楼层
51Halcon 发表于 2017-10-19 17:52
你汉字在byte模式下解析肯定是乱码啊,你需要按照它正常的格式解析就可以了,不用管他在byte模式下是不是 ...

或者说不用GetBytes 解码,应该用什么呢? 跪求啊,谢谢
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| Criss 发表于 2017-11-5 19:11:17 | 显示全部楼层
vivewen 发表于 2017-11-5 14:37
或者说不用GetBytes 解码,应该用什么呢? 跪求啊,谢谢

请提供你乱码的图片和原始数据,方便我们查看和解决!可以发送到:system@www.51halcon.com
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
vivewen 发表于 2017-11-5 23:16:51 | 显示全部楼层
51Halcon 发表于 2017-11-5 19:11
请提供你乱码的图片和原始数据,方便我们查看和解决!可以发送到:

您好,已发送邮件,请老师帮忙查看,万分感谢。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| Criss 发表于 2017-11-6 11:43:07 | 显示全部楼层
51Halcon 发表于 2017-11-5 19:11
请提供你乱码的图片和原始数据,方便我们查看和解决!可以发送到:

经过测试,全部都是正常的汉字,没有问题!从上往下依次是你发来的图片4、3、2、1的顺序!
1.png
参考代码:
  1. HObject ho_Image, ho_SymbolXLDs;
  2. HTuple hv_DataCodeHandle = null, hv_ResultHandles = null;
  3. HTuple hv_DecodedDataStrings = null,hv_Width = null,hv_Height=null;

  4. HOperatorSet.GenEmptyObj(out ho_Image);
  5. HOperatorSet.GenEmptyObj(out ho_SymbolXLDs);

  6. //一定要设置文件编码为utf-8,一个中文占3个字节
  7. HOperatorSet.SetSystem("filename_encoding", "utf8");
  8. ho_Image.Dispose();
  9. HOperatorSet.ReadImage(out ho_Image, "C:/Users/Admin/Desktop/halcon解码问题/1“中.MP4”二维码.jpg");
  10. HOperatorSet.GetImageSize(ho_Image, out hv_Width, out hv_Height);
  11. HOperatorSet.SetPart(m_WindowHandle, 0, 0, hv_Height - 1, hv_Width - 1);
  12. HOperatorSet.DispObj(ho_Image, m_WindowHandle);
  13. HOperatorSet.CreateDataCode2dModel("QR Code", new HTuple(), new HTuple(), out hv_DataCodeHandle);
  14. ho_SymbolXLDs.Dispose();
  15. HOperatorSet.FindDataCode2d(ho_Image, out ho_SymbolXLDs, hv_DataCodeHandle, new HTuple(), new HTuple(), out hv_ResultHandles, out hv_DecodedDataStrings);

  16. //显示
  17. string str = hv_DecodedDataStrings.S;
  18. textBox1.Text = str;

  19. ho_Image.Dispose();
  20. ho_SymbolXLDs.Dispose();
复制代码

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
起司猫 发表于 2017-11-6 13:48:56 | 显示全部楼层
Halcon带QR码库是识别不了的,不过可以参考这个帖子,用c#写的。http://www.cnblogs.com/chendaoyin/archive/2013/03/27/2984989.html

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
vivewen 发表于 2017-11-6 13:50:52 | 显示全部楼层
51Halcon 发表于 2017-11-6 11:43
经过测试,全部都是正常的汉字,没有问题!从上往下依次是你发来的图片4、3、2、1的顺序!

参考代码:

你好,我这还是乱码:'(, 那是不是我系统设置或软件问题,我系统是win7 64位专业版SP1,中文;C#是VS2015 64位,你们测试的是什么版本啊,有做过什么编码设置吗?

中.MP4

中.MP4
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
vivewen 发表于 2017-11-6 14:22:32 | 显示全部楼层
51Halcon 发表于 2017-11-6 11:43
经过测试,全部都是正常的汉字,没有问题!从上往下依次是你发来的图片4、3、2、1的顺序!

参考代码:

要么是halcon版本的问题,我是halcon12.0  32位,你们的桑什么版本啊
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表