1. 目标平台
    安装64位的halcon的情况下,目标平台必须使用x64而不能使用x86

  2. 目标框架
    不能使用.Net Framework Client版本,有一些必须的程序集会缺失,测试使用.Net Framework 4.0能够正常。

  3. 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. Microsoft.VisualC 命名空间包含支持用 c + + 语言的代码生成和编译的类。 混合编程中使用COM接口指针

    Microsoft.VisualC 命名空间包含支持用 c + + 语言的代码生成和编译的类. Microsoft.VisualC.StlClr Unmanaged Code 和 Managed Co ...

  2. C和C++混合编程中的extern "C" {}

    引言 在用C++的项目源码中,经常会不可避免的会看到下面的代码: 1 2 3 4 5 6 7 8 9 #ifdef __cplusplus extern "C" { #endif ...

  3. VS2010和matlab2010混合编程中char16_t重定义的问题

    原因是VS2010中的yvals.h添加了char16_t的定义,而Matlab的matrix.h也包含对char16_t的定义,所以同时包含这两个头文件的话,会导致重复定义char16_t的错误.只 ...

  4. python c++ 混合编程中python调用c++string返回类型的函数,python中返回为数字的解决办法

    本随笔解决 Python使用ctypes 调用c++dll 字符串返回类型函数,在python中显示为数字:原文解决方案见so: https://stackoverflow.com/questions ...

  5. C# 托管和非托管混合编程

    在非托管模块中实现你比较重要的算法,然后通过 CLR 的平台互操作,来使托管代码调用它,这样程序仍然能够正常工作,但对非托管的本地代码进行反编译,就很困难.   最直接的实现托管与非托管编程的方法就是 ...

  6. 【原创】Matlab.NET混合编程技巧之直接调用Matlab内置函数

                  本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新    Matlab和C#混合编程文章目录 :[目录]Matlab和C#混合编程文章目录 在我的上一篇文章[ ...

  7. matlab和C/C++混合编程--Mex

    最近的项目需要matlab和C的混合编程,经过一番努力终于完成了项目要解决的问题.现在就将Mex的一些经验总结一下,当然只是刚刚开始,以后随着学习的深入继续添加.首先讲讲写Mex的一些常规规定,然后我 ...

  8. matlab和C/C++混合编程--Mex (六)参数传递

    最近的项目需要matlab和C的混合编程,经过一番努力终于完成了项目要解决的问题.现在就将Mex的一些经验总结一下,当然只是刚刚开始,以后随着学习的深入继续添加.首先讲讲写Mex的一些常规规定,然后我 ...

  9. 单片机C 语言与汇编语言混合编程

    在单片机应用系统设计中,过去主要采用汇编语言开发程序. 汇编语言编写的程序对单片机硬件操作很方便,编写的程序代码短,效率高,但系统设计的周期长,可读性和可移植性都很差.C语言程序开发是近年来单片机系统 ...

随机推荐

  1. idea 安装 lombok插件

    一,前言 lombok是什么?lombak是一个工具,主要用来简化,减少代码的编写.使代码看起来更清晰,简洁. 而且lombok只是一个工具,不会打包到war中,不会增加任何消耗.只是在编译期中帮助我 ...

  2. java数据结构——栈(Stack)

    学习数据结构与算法是枯燥的,但只有坚持不懈的积累,才会有硕果累累的明天. /** * 继续学习Java数据结构 ————栈 * 栈的实现其实还是使用数组,只不过我们不能直接访问数组下标,而是通过一个指 ...

  3. 【翻译】Docker Compose 与Docker Stack的不同

    翻译原文 Docker引擎在1.12 版本集成了Docker Swarm,  带来了一些新工具. 现在可以无需安装 Docker Compose, 就可以利用docker-compose.yml 文件 ...

  4. Hadoop 文件系统命令行基础

    Hadoop 命令行最常用指令篇:  1.ls (list directory) Usage: hadoop fs -ls [R] Option: -R => 递归显示 2.mkdir (mak ...

  5. 基于djiango实现简易版的图书管理系统

    介绍: 本程序仅仅实现图书数据的增删查 树形结构如下   全部代码如下: url: from django.urls import path from front import views as fr ...

  6. 数位DP 详解

    序 天堂在左,战士向右 引言 数位DP在竞赛中的出现几率极低,但是如果不会数位DP,一旦考到就只能暴力骗分. 以下是数位DP详解,涉及到的例题有: [HDU2089]不要62 [HDU3652]B-n ...

  7. Maven 梳理 - maven新建web项目提示"javax.servlet.http.HttpServlet" was not found on the Java Build Path

    方法一: <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api&l ...

  8. Spring MVC-从零开始-未完待续

    Spring MVC 之 json格式的输入和输出 Spring定时器简单使用 Spring mvc 拦截器的简单使用 Spring MVC文件上传

  9. FastDfs之StorageServer的详细配置介绍

    #这个配置文件是否失效 disabled=false #false为有效 true为无效 # 本storage server所属的group名 group_name=group1 # 可以版定一个ip ...

  10. ajax跨域访问数据

    通过json发送和接受数据,数据以json的格式在服务器端和前台进行传递,什么是json数据?这里就不进行详细阐述,轻自行百度解决. 在html5 中利用ajax 异步请求时,会遇到跨域的问题,如果域 ...