public void set_detect_images(List <Bitmap> bitmap_list)
        {
            // transform images
            BatchAidiImage aidi_images = new BatchAidiImage();

            //AidiImage image_t = new AidiImage();
            //image_t.read_image("D:/aidi_benchmark/location_sample_mobilephone/Location_0/source/1.bmp");
            for (int i = 0; i < bitmap_list.Count; i++)
            {
                Bitmap current_bitmap = bitmap_list[i];

                AidiImage image          = new AidiImage();
                string    bit_number     = current_bitmap.PixelFormat.ToString();
                int       channel_number = 1;
                if (bit_number.Contains("24")) // 24位即为3通道,8位为1通道
                {
                    channel_number = 3;
                }
                else
                {
                    channel_number = 1;
                }
                int      stride;
                DateTime dt1             = System.DateTime.Now;
                byte[]   transform_image = GetBGRValues(bitmap_list[i], out stride);
                image.char_ptr_to_mat(transform_image, current_bitmap.Height, current_bitmap.Width, channel_number);
                aidi_images.add_image(image);
                DateTime dt2 = System.DateTime.Now;
                TimeSpan ts  = dt2.Subtract(dt1);
                Console.WriteLine("wrap image time time {0}", ts.TotalMilliseconds);
                Console.WriteLine(aidi_images.get_images_size());
            }
            aidi_.set_test_batch_image(aidi_images);
        }
        /// <summary>
        /// 将单张图片灌入Aidi对象
        /// </summary>
        /// <param name="bitmap"></param>
        /// <returns></returns>
        public BatchAidiImage GetBatch_images(Bitmap bitmap)
        {
            BatchAidiImage batch_images = new BatchAidiImage();
            int            channelNum   = Image.GetPixelFormatSize(bitmap.PixelFormat) / 8;//判断8位、24位、32位
            int            stride;

            byte[] data = GetBGRValues(bitmap, out stride);
            //转换图片格式,供aidi使用
            AidiImage image = new AidiImage();

            image.char_ptr_to_mat(data, bitmap.Height, bitmap.Width, channelNum);
            batch_images.add_image(image);
            return(batch_images);
        }
        public List <string> Run(List <Bitmap> bitmap_list)
        {
            if (!is_ready)
            {
                throw new Exception("模型未初始化");
            }
            List <string> result_list = new List <string>();
            // transform images
            BatchAidiImage aidi_images = new BatchAidiImage();

            //AidiImage image_t = new AidiImage();
            //image_t.read_image("D:/aidi_benchmark/location_sample_mobilephone/Location_0/source/1.bmp");
            for (int i = 0; i < bitmap_list.Count; i++)
            {
                Bitmap    current_bitmap = bitmap_list[i];
                AidiImage image          = new AidiImage();
                string    bit_number     = current_bitmap.PixelFormat.ToString();
                int       channel_number = 1;
                if (bit_number.Contains("24")) //24位即为3通道,8位为1通道
                {
                    channel_number = 3;
                }
                else
                {
                    channel_number = 1;
                }
                int      stride;
                DateTime dt1             = System.DateTime.Now;
                byte[]   transform_image = GetBGRValues(bitmap_list[i], out stride);
                image.char_ptr_to_mat(transform_image, current_bitmap.Height, current_bitmap.Width, channel_number);
                aidi_images.add_image(image);
                DateTime dt2 = System.DateTime.Now;
                TimeSpan ts  = dt2.Subtract(dt1);
                Console.WriteLine("wrap image time time {0}", ts.TotalMilliseconds);
                Console.WriteLine(aidi_images.get_images_size());
            }
            aidi_.set_test_batch_image(aidi_images);
            StringVector results = aidi_.get_detect_result();

            //image_t.draw_result(results[0]);
            //image_t.show_image(0);
            for (int i = 0; i < results.Count; i++)
            {
                result_list.Add(results[i]);
            }
            //string result = aidi_.start_test(image_t);
            //result_list.Add(result);

            return(result_list);
        }
        /// <summary>
        /// 将批量图片灌入Aidi对象
        /// </summary>
        /// <param name="bitmaps"></param>
        /// <returns></returns>
        public BatchAidiImage GetBatch_images(List <Bitmap> bitmaps)
        {
            BatchAidiImage batch_images = new BatchAidiImage();

            int _count = bitmaps.Count;

            for (int i = 0; i < _count; i++)
            {
                int channelNum = Image.GetPixelFormatSize(bitmaps[i].PixelFormat) / 8;//判断8位、24位、32位

                int    stride;
                byte[] data = GetBGRValues(bitmaps[i], out stride);
                //转换图片格式,供aidi使用
                AidiImage image = new AidiImage();

                image.char_ptr_to_mat(data, bitmaps[i].Height, bitmaps[i].Width, channelNum);
                batch_images.add_image(image);
            }
            return(batch_images);
        }