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); }
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); }