C# Halcon混合编程中遇到的问题
Posted yutou2016
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# Halcon混合编程中遇到的问题相关的知识,希望对你有一定的参考价值。
目标平台
安装64位的halcon的情况下,目标平台必须使用x64而不能使用x86目标框架
不能使用.Net Framework Client版本,有一些必须的程序集会缺失,测试使用.Net Framework 4.0能够正常。HObject 和 C#中的对象的互相转换问题。
在混合编程中,这个应该是一个大问题,我之前之所以一直没有意识到这个问题,是因为虽然说我在做混合编程,但是实际上我只是在C#的环境中用一些halcon中的算子玩了一下,
在wpf中的图像显示使用的也是halcon提供的控件。
当前我所遇到的问题是HObject 和 BitmapImage的转换问题,我在wpf中使用了一个Image控件,Source应该是ImageSource类型的。
根据网上的资料来看,这个过程可能涉及到两个转换:HObject转换为Bitmap,Bitmap转换为ImageSource。
在不考虑耗时且确实有保存图片的需求的情况下,找了一个规避类型转换的方法:将HObject类型的图片保存下来,再读取成ImageSource。
但是在考虑耗时的问题且不需要保存图片的情况下,文件的读写估计是低效的,必须找一个可以转换的方法。
参考文档:https://blog.csdn.net/qq_20161893/article/details/78580036
https://blog.csdn.net/jiuzaizuotian2014/article/details/81279423
https://codeday.me/bug/20180824/228349.html
https://docs.microsoft.com/en-us/dotnet/api/system.drawing.bitmap.gethbitmap?view=netframework-4.8测试过程中遇到点问题,转换成Bitmap的时候间或出现内存被破坏的问题,具体处理方式还要再找找再想想。unsafe用的也不是很愉快。
以上是关于C# Halcon混合编程中遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章
解决问题1:可以从桌面显示到FORM MFC/HALCON混合编程系列一_打开图像_简单处理_