• 大小: 88KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: C#
  • 标签: C#  Labview  halcon  

资源简介

C#代码 NIVision Image To HalconImaget图像格式转换,直接输入NI vision图像转换为Hobject类型

资源截图

代码片段和文件信息

//NationalInstruments.Vision.dll
//NationalInstruments.Vision.Common.dll
//NationalInstruments.Vision.Acquisition.Imaqdx.dll

using NationalInstruments.Vision;
using NationalInstruments.Vision.Analysis;
using NationalInstruments;
using System;
using HalconDotNet;
using Microsoft;
using System.Collections.Generic;

using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
//using System.Threading.Tasks;
using System.Windows.Forms;
using System.Management;


namespace NIVIOSN
{
    public class NI_VISION
    {
        public void VisionImage2Hobject(VisionImage Image)
        {
            

            //VisionImage Image = new VisionImage();
            PixelValue2D p2D;       

            p2D = Image.ImageToArray();

            Byte[] imagedata = null;

            /// byte二维数组转一维数组
            ///
            imagedata = ByteArrToByte(p2D.U8 Image.Height Image.Width); //p2D.U8按行列排序的
            Hobject hImage = new HalconDotNet.Hobject();
            IntPtr jj = new IntPtr();

            ///byte()转IntPrt  CSDN关键字“在VB.Net中使用指针”
            //以下语句告诉net垃圾回收进程不对tabytTest进行处理,也就是说tabytTest占用的内存区域固定不变。
            System.Runtime.InteropServices.GCHandle thobject = System.Runtime.InteropServices.GCHandle.Alloc(imagedata System.Runtime.InteropServices.GCHandleType.Pinned);
            IntPtr tpobject = thobject.AddrOfPinnedobject(); //取得指向字节数组的指针

            HalconDotNet.HOperatorSet.GenImage1(out hImage “byte“ Image.Width Image.Height tpobject);
            //HalconDotNet.HOperatorSet.WriteImage(hImage “bmp“ 0 Application.StartupPath & “\AOI Image\“ & “_H“ & I & “.bmp“);


            //    //在使用完毕后一定要释放指针指向的内存块,让垃圾回收器可对这个内存块回收处理
            //if (thobject.IsAllocated)
            //    thobject.Free();


            Image.Dispose();
        }
        //Cam(0).TriggerSource = NiCamera.TriggerSourceType.Software;
        //Getimage_Busy(0) = False;

        //    else
        //        //Threading.Thread.Sleep(10);

        //catch (Exception ex)
        //{
        //    MsgBox(ex.ToString);


        //Halcon图像Hobject转NIVision图像VisionImage,步骤倒过来就好了:


//        public void HImageToNivision(Hobject hImage out HTuple  Pointer out HTuple Width out HTuple Height )



//        {


            

//            /// byte二维数组转一维数组
//            ///
            
           

//            HTuple  Type = “byte“;
//HOperatorSet.GetImagePointer1(hImage out Pointerout Type out Width out Height);

//            //将Pointer转byte[]

//            //将byte[]转byte[]
           

//            PixelValue2D p2D.U8=ByteArrToByte(Byte[] b Height[0].I() Width[0].I()); //byte一维数组转二维数组

//            ArrayToImage(p2D);
            //————————————————
            //版权声明:本文为CSDN博主「c1learning」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
            //原文链接:https://blog.csdn.net/c1learning/article/details/10073666

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       9607  2019-09-16 14:27  class.jpg

     文件      87945  2019-09-16 14:28  class2.jpg

     文件       8200  2019-09-16 13:58  Nivisiontohobject.cs

----------- ---------  ---------- -----  ----

               105752                    3


评论

共有 条评论