C# 大恒水星MER2工业相机SDK图像转halcon图像HImage的关键代码

   IImageData objIImageData = null;

                    //获取图像
                    if (null != m_objIGXStream)
                    {
                        //计时开始
                        // m_objStopTime.Start();
                        //1000
                        objIImageData = m_objIGXStream.GetImage(3000);
                        ///objIImageData.GetBuffer()
                        //结束计时
                        // dElapsedtime = m_objStopTime.Stop();
                    }   
                     
                    IntPtr pImg = objIImageData.GetBuffer();
                    IntPtr pRGBImg = IntPtr.Zero;
                    //objIImageData = m_objIGXStream.GetImage(500);
                    //if (ignoreImage)
                    //{
                    //    return;
                    //}
                    // Reduce the number of displayed images to a reasonable amount if the camera is acquiring images very fast.
                    // if (!stopWatch.IsRunning || stopWatch.ElapsedMilliseconds > 33)
                    {
                        //stopWatch.Restart();

                        if (hPylonImage != null && hPylonImage.IsInitialized())
                        {
                            hPylonImage.Dispose();
                        }
                        hPylonImage = new HImage();
                        hPylonImage.GenEmptyObj();
                        hPylonImage.Dispose();

                        width = (int)objIImageData.GetWidth();
                        height = (int)objIImageData.GetHeight();
                        //{
                        if (objIImageData.GetStatus() != GX_FRAME_STATUS_LIST.GX_FRAME_STATUS_SUCCESS)
                        {
                           //Util.Notify(string.Format("相机{0}数据损坏,采集失败", cameraIndex));
                           return;
                        }

                        //转换为Halcon图像显示
                        //把图像数据生成halcon图像
                        //pData:图像数据地址;
                        if (objIImageData.GetPixelFormat() == GX_PIXEL_FORMAT_ENTRY.GX_PIXEL_FORMAT_MONO8)
                        {
                            //如果是黑白相机,
                            hPylonImage.GenImage1("byte", width, height, pImg/*frameData.GetBuffer()*/);
 
                        }
                        else //如果相机是彩色,需要把pixel format 改成RGB8Packed并保存
                        {
                            
                                GX_VALID_BIT_LIST emValidBits = GX_VALID_BIT_LIST.GX_BIT_0_7;
                                emValidBits = __GetBestValudBit(objIImageData.GetPixelFormat());
                                pImg = objIImageData.ConvertToRGB24(emValidBits, GX_BAYER_CONVERT_TYPE_LIST.GX_RAW2RGB_NEIGHBOUR, false);

                                hPylonImage.GenImageInterleaved(pImg, "bgr", width, height, -1, "byte", width, height, 0, 0, -1, 0);
                             
                        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农小乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值