public static void Main() // for test { // initialize ClassMarshal_Roadmap_Roadsign mRoadmap_Roadsign = new ClassMarshal_Roadmap_Roadsign(); mRoadmap_Roadsign.init_module_onlyRecognizer(); // init_ai_module // load image as Bitmap String path_image = @"E:\20200407_sRoadmap\sample_pg2\50_small.jpg"; // test image (50) Bitmap mBitmap = (Bitmap)Bitmap.FromFile(path_image); // check isGray bool isGray = ClassUtil_Bitmap.isGrayScale(mBitmap); // convert BItmap to image_byte_array byte[] image_byte_array = ClassUtil_Bitmap.Bitmap2ByteArray(mBitmap); int image_byte_array_len = image_byte_array.Length; // recognize class with its probability int classNo = 0; double prob = 0; mRoadmap_Roadsign.crop_image_recogize(image_byte_array, image_byte_array_len, 1, ref classNo, ref prob, isGray); //TEST_ImageIn(image_byte_array, image_byte_array_len); // 이미지 데이터의 포인터, 길이, 이미지 받을 구조체 Console.WriteLine("classNo {0} // prob {1}", classNo, prob); Console.WriteLine("COMPLETE; Press Enter"); Console.ReadKey(); // dispose ClassMarshal_Roadmap_Roadsign mRoadmap_Roadsign.Dispose(); return; }
public void Testsample1() // for test { unsafe { ClassMarshal_Roadmap_Roadsign testClass = new ClassMarshal_Roadmap_Roadsign(); testClass.Test_sample(); testClass.init_module_onlyRecognizer(); String path_image = @"E:\20200407_sRoadmap\sample_pg2\50_small.jpg"; Bitmap mBitmap = (Bitmap)Bitmap.FromFile(path_image); bool isGray = ClassUtil_Bitmap.isGrayScale(mBitmap); Console.WriteLine("isGray ?? " + isGray); ImageFormat fmt = new ImageFormat(mBitmap.RawFormat.Guid); var imageCodecInfo = ImageCodecInfo.GetImageEncoders().FirstOrDefault(codec => codec.FormatID == mBitmap.RawFormat.Guid); if (imageCodecInfo == null) { fmt = ImageFormat.Jpeg; } using (MemoryStream ms = new MemoryStream()) { mBitmap.Save(ms, fmt); // 이미지를 스트림형으로 변환 byte[] image_byte_array = ms.ToArray(); // 이미지를 Byte Array 타입으로 변경 int image_byte_array_len = image_byte_array.Length; // 길이 int classNo = 0; double prob = 0; testClass.crop_image_recogize(image_byte_array, image_byte_array_len, 1, ref classNo, ref prob, isGray); //TEST_ImageIn(image_byte_array, image_byte_array_len); // 이미지 데이터의 포인터, 길이, 이미지 받을 구조체 Console.WriteLine("classNo {0} // prob {1}", classNo, prob); Console.WriteLine("COMPLETE; Press Enter"); Console.ReadKey(); } testClass.Dispose(); return; } }