예제 #1
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="width">图像宽</param>
        /// <param name="height">图像高</param>
        /// <returns></returns>
        public bool InitAlgorithm(Int32 width, Int32 height)
        {
            this.Width  = 4000;
            this.Height = 3000;

            //初始化清晰度的算法
            MvSSharpnessMeasureChannelParam smChannelParam = MvSSharpnessMeasureChannelParam.GetInstance();

            smChannelParam.imgWidth  = Width;
            smChannelParam.imgHeight = Height;

            int memSize = MVSHARP.sharpnessMeasureCalMemSize(ref smChannelParam);

            MvBarCodeGlobalVar.Log.InfoFormat("sharpnessMeasureCalMemSize :{0}", memSize.ToString());
            m_handle = Marshal.AllocHGlobal(memSize);

            int result = MVSHARP.sharpnessMeasureInit(m_handle, ref smChannelParam);


            MvBarCodeGlobalVar.Log.InfoFormat("sharpnessMeasureInit return :{0}", result.ToString());

            if (result > memSize)
            {
                MVSHARP.sharpnessMeasureExit(m_handle);
                //记下错误日志
                //log.ErrorFormat("算法需要的内存{0}比最大支持的内存{1}大,此图片不进行清晰度", result, memSize);
            }

            return(true);
        }
예제 #2
0
            public static MvSSharpnessMeasureChannelParam GetInstance()
            {
                MvSSharpnessMeasureChannelParam param = new MvSSharpnessMeasureChannelParam();

                param.imgWidth  = 0;
                param.imgHeight = 0;
                param.reserve   = new IntPtr[MVConst.Len_30];

                return(param);
            }
예제 #3
0
 public static extern int sharpnessMeasureCalMemSize(ref MvSSharpnessMeasureChannelParam param);
예제 #4
0
 public static extern int sharpnessMeasureInit(IntPtr handle, ref MvSSharpnessMeasureChannelParam param);