예제 #1
0
 public void SeparaInterface_GetBufferAddress(int Index, out IntPtr pImgBufAddress)
 {
     pImgBufAddress = IntPtr.Zero;
     if (m_Buffers != null)
     {
         m_Buffers.GetAddress(Index, out pImgBufAddress);
     }
 }
예제 #2
0
        private void m_Xfer_XferNotify(object sender, EventArgs e)
        {
            HImage hImage = new HImage();
            IntPtr myptr;

            m_Buffers.GetAddress(out myptr);
            hImage.GenImage1("byte", m_Buffers.Width, m_Buffers.Height, myptr);
            ImageGrabbed(hImage);
        }
예제 #3
0
        public void xfer_XferNotify(object sender, SapXferNotifyEventArgs argsNotify)
        {
            DateTime StartTime = DateTime.Now;


            //1.计算图像采集时间
            if (firstFrame)
            {
                firstFrame = false;
                start      = DateTime.Now.Second + (float)DateTime.Now.Millisecond / 1000;
                return;
            }

            end      = DateTime.Now.Second + (float)DateTime.Now.Millisecond / 1000;
            duration = end - start;
            start    = end;
            Console.WriteLine("图像采集时间:" + duration.ToString() + "秒\n");
            Model.AcquisionImageTime[AcquisionImageCount] = duration;



            //2.图像缓存转化为halcon图像类型
            int SubImageWidth  = 13384;
            int SubImageHeight = 100;//7635


            IntPtr dataAddress = IntPtr.Zero;
            bool   Flag        = m_Buffers.GetAddress(out dataAddress);

            if (!Flag)
            {
                MessageBox.Show("图像缓存获取失败!");
            }

            AutoMachineDAL.DAL Dal = new AutoMachineDAL.DAL();
            Model.RawImage = Dal.ImageProcessObject.ImagePtrToHobject(SubImageWidth, SubImageHeight, ref dataAddress);
            HOperatorSet.DispObj(Model.RawImage, Model.MainUI_Camera_WindowID);

            if (Model.SaveImageFlag)
            {
                SaveImage(Model.RawImage, true);
            }


            //CombinImage(CommonModuleClass.RawImage, SubImageWidth, SubImageHeight);


            //5.计算图像转换时间
            DateTime EndTime    = DateTime.Now;
            TimeSpan ts         = EndTime - StartTime;
            double   difference = ts.TotalSeconds; //秒单位

            Console.WriteLine("图像转换时间:" + difference.ToString() + "秒\n");
        }
예제 #4
0
        private void cvProcess(SapBuffer buffer)//修改
        {
            unsafe
            {
                IntPtr dataBufAddress;

                buffer.GetAddress(out dataBufAddress);

                //IntPtr imgdata = new IntPtr(img.data);
                if (2 == videoMode)
                {
                    mChipDetection.ProcessImage(dataBufAddress, (UInt32)buffer.Width, (UInt32)buffer.Height);
                }
                //img.data
            }
        }
예제 #5
0
        private void btnTest_Click(object sender, EventArgs e)
        {
            //************整个的处理******************//
            string    picpath   = "E:\\pic\\7.jpg";
            SapBuffer picbuffer = null;

            picbuffer = new SapBuffer(picpath, SapBuffer.MemoryType.Default);
            picbuffer.Create();
            picbuffer.Load(picpath, -1);

            IntPtr BufAddress;

            picbuffer.GetAddress(out BufAddress);
            mChipDetection.ProcessImage(BufAddress, (uint)picbuffer.Width, (uint)picbuffer.Height);

            lblwordx.Text = mChipDetection.realworldx.ToString();
            lblwordy.Text = mChipDetection.realworldy.ToString();
        }