public void trainSystem(string fileDirectory, string dbFile) { //Eğitim veritabanını oluştur Stream fileStream = new FileStream(dbFile, FileMode.Create, FileAccess.Write); IFormatter formatter = new BinaryFormatter(); //Eğitim dizinindeki bütün bitmap dosyalarını listele string[] filePaths = getFiles(fileDirectory, "*.gif|*.jpg|*.png|*.bmp", SearchOption.AllDirectories); Int32 numOfImages = filePaths.Length; formatter.Serialize(fileStream, numOfImages); //Görüntü sayısını dosyaya yaz Bitmap bm; //Her dosya için 64bin histogram ve dosya isminden oluşan bir nesne oluştur //Oluşturulan nesneyi serileştirerek dosyaya kaydet for (int i=0; i<filePaths.Length; i++) { bm = (Bitmap)Bitmap.FromFile(filePaths[i]); ImageRecord newRecord = new ImageRecord(); newRecord.histogram = generate64binHistogram(bm); newRecord.fileName = filePaths[i]; formatter.Serialize(fileStream,newRecord); progressBar1.Value = i*100/filePaths.Length; } fileStream.Close(); }
private static ImageRecord ToImage(DicomDirectoryRecord record) { ImageRecord image = new ImageRecord(); image.SOPInstanceUID = record.GetSingleValue <string>(DicomTag.ReferencedSOPInstanceUIDInFile); image.ImageNumber = record.GetSingleValueOrDefault <string>(DicomTag.InstanceNumber, null); image.ReferencedFileID = record.GetValueOrDefault <string>(DicomTag.ReferencedFileID, 0, null); return(image); }
public string GetImageByID(string id) { ImageRecord expectedResult = new ImageRecord { Id = "phile", Image = "bla", Title = "Hello world" }; return(expectedResult.ToJson()); }
/// <summary> /// 单击上传图片 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnuploading_Click(object sender, EventArgs e) { try { bool bo = false; //得到图片的路径 string path = txtpath.Text.Trim(); if (path.Trim() == "") { MessageBox.Show("请选择图片地址"); return; } for (int i = 0; i < ListPath.Count; i++) { string num = FWpath + "\\" + DateTime.Now.Year + "\\" + DateTime.Now.ToString("yyyyMMdd") + "\\"; string picName = ImageFile.UpLoadFile(ListPath[i], num);//上传图片到指定路径 //添加上传记录 //insert into ImageRecord values(之间编号,'xx/aa.jpg','2013-05-06','啊啊啊啊啊') if (picName != "") { ImageRecord img = new ImageRecord(); img.ImageRecord_Unusual_Id = UnusualId;//改为用异常编号关联 img.ImageRecord_ImageName = picName; img.ImageRecord_Time = DateTime.Now; img.ImageRecord_Remark = null; if (!ImageRecordDAL.InsertOneQCRecord(img)) { bo = false; MessageBox.Show("上传失败"); return; } else { bo = true; } } } if (bo) { MessageBox.Show("上传成功!"); Dispose(); } } catch (Exception ex) { MessageBox.Show("上传时发生错误!错误原因是" + ex.Message); } }
private void RenderImagePrimitive(Graphics g, ImageRecord image) { var rect = ScreenFromWorld(image.CalculateBounds()); if (_embeddedImages.TryGetValue(image.Filename, out var img)) { g.DrawImage(img, rect); } if (image.IsSolid) { var penWidth = ScaleLineWidth(image.LineWidth); using (var pen = CreatePen(image.Color, penWidth, lineJoin: LineJoin.Miter)) { DrawingUtils.DrawRectangle(g, pen, rect); } } }
/// <summary> /// 新增一条质检记录 /// </summary> /// <param name="qcRecord">质检实体</param> /// <returns></returns> public static bool InsertOneQCRecord(ImageRecord qcRecord) { bool rbool = true; using (DCQUALITYDataContext db = new DCQUALITYDataContext()) { try { db.ImageRecord.InsertOnSubmit(qcRecord); db.SubmitChanges(); rbool = true; } catch { rbool = false; } finally { db.Connection.Close(); } } return(rbool); }
public async Task TestSingleImageGet() { // Arrange var function = new Function("bob"); var context = new TestLambdaContext(); ImageRecord expectedResult = new ImageRecord { Id = "bob", Image = "bla", Title = "Hello world" }; // Act string id = "bob"; string sut = function.GetImageByID(id); ImageRecord actualResult = ImageRecord.FromJson(sut); // Assert // Assert.Equal(expectedResult.Id, actualResult.Id); Assert.True(expectedResult.Equals(actualResult)); }
public void RateLimitedFromResponse() { var album = CreateAlbum(new List <string> { CreateImageModel() }); mMockClient.SetResponse("/album/abc", new MockHttpResponse { Content = album, Headers = LimitedHeaders }); var task = mDetector.DetectImagesAsync(new Uri($"{BaseUrl}/a/abc")); task.Wait(); var imageRecord = new ImageRecord { Format = ImageFormat.Jpg, Url = new Uri(DefaultUrl) }; Assert.NotEmpty(task.Result); Assert.Equal(expected: imageRecord, actual: task.Result[0]); Assert.Equal(expected: ImageDetectorState.RateLimited, actual: mDetector.State); }
/// <summary> /// Create a image record from <see cref="DicomDataset"/>. /// Becareful: filename is null. /// </summary> /// <param name="dcmData"><see cref="DicomDataset"/></param> /// <returns>Image record <see cref="{DataModel.ImageRecord}"/></returns> public static ImageRecord CreateImage(this DicomDataset dcmData) { string imageUID = dcmData.Get <string>(DicomTag.SOPInstanceUID); string seriesUID = dcmData.Get <string>(DicomTag.SeriesInstanceUID); var record = new ImageRecord(imageUID, seriesUID); // 0, 1 record.ImageNumber = dcmData.Get <ushort>(DicomTag.InstanceNumber, 0, 0); // 2 string sliceThickness = dcmData.Get <string>(DicomTag.SliceThickness, 0, null); // 3 if (string.IsNullOrEmpty(sliceThickness) == false) { double st = 0; double.TryParse(sliceThickness, out st); record.SliceThickness = st; } ushort rows = dcmData.Get <ushort>(DicomTag.Rows, 0, 0); ushort columns = dcmData.Get <ushort>(DicomTag.Columns, 0, 0); record.Matrix = $"{rows}x{columns}"; return(record); }
/// <summary> /// Instantiates a record according to its record type number. /// </summary> /// <param name="recordType">Integer representing the record type.</param> /// <returns>A new empty instance of a record primitive.</returns> private SchPrimitive CreateRecord(int recordType) { SchPrimitive record; switch (recordType) { case 1: record = new SchComponent(); break; case 2: record = new PinRecord(); break; case 3: record = new SymbolRecord(); break; case 4: record = new TextStringRecord(); break; case 5: record = new BezierRecord(); break; case 6: record = new PolylineRecord(); break; case 7: record = new PolygonRecord(); break; case 8: record = new EllipseRecord(); break; case 9: record = new PieChartRecord(); break; case 10: record = new RoundedRectangleRecord(); break; case 11: record = new EllipticalArcRecord(); break; case 12: record = new ArcRecord(); break; case 13: record = new LineRecord(); break; case 14: record = new RectangleRecord(); break; case 28: case 209: record = new TextFrameRecord(); break; case 30: record = new ImageRecord(); break; case 34: record = new Record34(); break; case 41: record = new Record41(); break; case 44: record = new Record44(); break; case 45: record = new Record45(); break; case 46: record = new Record46(); break; case 48: record = new Record48(); break; default: EmitWarning($"Record {recordType} not supported"); record = new SchPrimitive(); break; } return(record); }
private string getImageUrl(ImageRecord img) { string baseUrl = Request.Scheme + "://" + (new Uri(Request.GetDisplayUrl())).Authority.TrimEnd('/') + "/filestorage/"; return(baseUrl + img.File.FilePath); }
public List <ImageRecord> QueryImage(string queryImagePath, object argument = null) { List <ImageRecord> rtnImageList = new List <ImageRecord>(); CEDD_Descriptor.CEDD cedd = new CEDD_Descriptor.CEDD(); int goodMatchDistance = 35; if (argument != null && argument is Int32) { goodMatchDistance = (int)argument; } double[] queryCeddDiscriptor; using (Bitmap bmp = new Bitmap(Image.FromFile(queryImagePath))) { queryCeddDiscriptor = cedd.Apply(bmp); } Stopwatch sw = Stopwatch.StartNew(); BKTree <CEDDTreeNode> ceddTree = null; if (!CacheHelper.Get <BKTree <CEDDTreeNode> >("CeddIndexTree", out ceddTree)) { CEDDRepository <BKTree <CEDDTreeNode> > repo = new CEDDRepository <BKTree <CEDDTreeNode> >(); ceddTree = repo.Load(); if (ceddTree == null) { throw new InvalidOperationException("Please index CEDD with BK-Tree before querying the Image"); } CacheHelper.Add <BKTree <CEDDTreeNode> >(ceddTree, "CeddIndexTree"); } sw.Stop(); Debug.WriteLine("Load tooked {0} ms", sw.ElapsedMilliseconds); CEDDTreeNode queryNode = new CEDDTreeNode { Id = 0, ImagePath = queryImagePath, CEDDDiscriptor = queryCeddDiscriptor }; sw.Reset(); sw.Start(); Dictionary <CEDDTreeNode, Int32> result = ceddTree.query(queryNode, goodMatchDistance); sw.Stop(); Debug.WriteLine("Query tooked {0} ms", sw.ElapsedMilliseconds); foreach (KeyValuePair <CEDDTreeNode, Int32> ceddNode in result) { ImageRecord rec = new ImageRecord { Id = ceddNode.Key.Id, ImageName = ceddNode.Key.ImageName, ImagePath = ceddNode.Key.ImagePath, Distance = ceddNode.Value }; rtnImageList.Add(rec); } rtnImageList = rtnImageList.OrderBy(x => x.Distance).ToList(); return(rtnImageList); }
IEnumerator MainReader() { var x = new Stopwatch(); while (true) { // get file index if changed if (File.GetLastWriteTime(indexPath) > lastIndexWrite) { lastIndexWrite = File.GetLastWriteTime(indexPath); files.Clear(); types.Clear(); facings.Clear(); using (var fileReader = File.OpenText(indexPath)) { while (!fileReader.EndOfStream) { var line = fileReader.ReadLine() ?? ""; files.Add(line.Substring(0, 36)); // 36 char uuid types.Add(CHAR_TO_TYPE[line[line.Length - 3]]); // type facings.Add(CHAR_TO_FACING[line[line.Length - 1]]); // facing } } } yield return(null); // loop files for (var i = 0; i < files.Count; i++) { var file = files[i]; var type = types[i]; var facing = facings[i]; var path = root + file + ".png"; var record = Records.Find(path, (r, p) => r.Path == p); // create if new file in directory if (record == null) { record = new ImageRecord { Name = file, Path = root + file + ".png", Texture = new Texture2D(2, 2), }; record.Texture.wrapMode = TextureWrapMode.Clamp; // eliminate slight artifacts at edges of image Records.Add(record); recordsJustAdded.Add(record); yield return(null); } // update record metadata record.Type = type; if (record.Facing != facing) { // update facing and cached material scale record.Facing = facing; var mats = MaterialsCache.Get(record.Texture); if (mats != null) { mats.SetFlip(record.Facing == ImageFacing.Left); } } yield return(null); // update file if image was changed if (File.Exists(record.Path) && File.GetLastWriteTime(record.Path) > record.LastUpdated) { // do all file-reading work in one atomic chunk record.LastUpdated = File.GetLastWriteTime(record.Path); record.Texture.LoadImage(File.ReadAllBytes(record.Path)); yield return(endOfFrame); var pixels = record.Texture.GetPixels32(ImageRecord.MAIN_COLOR_MIP_LEVEL); yield return(null); List <Color> topColors; record.MainColor = GetMainColorFromPixels(pixels, out topColors, 2); // blend top 2 colors record.Color1 = topColors[0]; record.Color2 = topColors[1]; yield return(null); record.Dimensions = new Vector2(record.Texture.width / 100f, record.Texture.height / 100f); OnUpdated(record); } yield return(null); } // remove record and quad if file is deleted for (int i = 0; i < Records.Count; i++) { if (!File.Exists(Records[i].Path)) { var record = Records[i]; Records.RemoveAt(i); OnRemoved(record); i--; } yield return(null); } // sort by age ascending Records.Sort((r1, r2) => - r1.LastUpdated.CompareTo(r2.LastUpdated)); yield return(null); // call added events foreach (var record in recordsJustAdded) { OnAdded(record); } recordsJustAdded.Clear(); // wait until next frame yield return(endOfFrame); } }
public ImageRecord[] findresemblances(string testImagePath, List<ImageRecord> histogramList) { Bitmap testImage = (Bitmap)Bitmap.FromFile(testImagePath); double[] testHistogram = generate64binHistogram(testImage); double[] minimum3dist = new double[3]; ImageRecord[] minimum3Records = new ImageRecord[3]; minimum3dist[0] = minimum3dist[1] = minimum3dist[2] = Double.MaxValue; foreach (ImageRecord imageRecord in histogramList) //en kısa uzaklıktaki 3 görüntü kaydını bul { double dist = manhattanDistance(testHistogram, imageRecord.histogram); if (dist < minimum3dist[0]) { minimum3dist[0] = dist; minimum3Records[0] = imageRecord; } else if (dist < minimum3dist[1]) { minimum3dist[1] = dist; minimum3Records[1] = imageRecord; } else if (dist < minimum3dist[2]) { minimum3dist[2] = dist; minimum3Records[2] = imageRecord; } } return minimum3Records; }
public static int Build(EFContext db, string fileExt, string fileName, string fullFilePath, string path, int fileId, string name) { { var group = new ImageGroup(); group.Name = name; group.Updated = DateTime.UtcNow; group.Active = true; db.ImageGroups.Add(group); db.SaveChanges(); var img = new ImageRecord(); img.Name = name; img.FileId = fileId; img.ImageGroupId = group.Id; img.ImageSize = ImageSize.src; db.Images.Add(img); db.SaveChanges(); // image resizing int w; int h; var f2048 = fileName + "_h2048." + fileExt; var file2048 = Path.Combine(path, f2048); if (ImageResizeService.ResizeImageFile(fullFilePath, file2048, ImageSize.h2048, out w, out h)) { var fileInfo = new FileInfo(file2048); var sizekb = fileInfo.Length * 0.001M; var f = new FileRecord() { FilePath = f2048, Key = name, FileExt = fileExt, Name = fileName, FileType = FileType.Image, SizeKb = sizekb }; db.Files.Add(f); db.SaveChanges(); var i = new ImageRecord() { FileId = f.Id, Name = name, Width = w, Height = h }; i.ImageGroupId = group.Id; i.ImageSize = ImageSize.h2048; db.Images.Add(i); db.SaveChanges(); } var f1024 = fileName + "_h1024." + fileExt; var file1024 = Path.Combine(path, f1024); if (ImageResizeService.ResizeImageFile(fullFilePath, file1024, ImageSize.h1024, out w, out h)) { var fileInfo = new FileInfo(file1024); var sizekb = fileInfo.Length * 0.001M; var f = new FileRecord() { FilePath = f1024, Key = name, FileExt = fileExt, Name = fileName, FileType = FileType.Image, SizeKb = sizekb }; db.Files.Add(f); db.SaveChanges(); var i = new ImageRecord() { FileId = f.Id, Name = name, Width = w, Height = h }; i.ImageGroupId = group.Id; i.ImageSize = ImageSize.h1024; db.Images.Add(i); db.SaveChanges(); } var f720 = fileName + "_h720." + fileExt; var file720 = Path.Combine(path, f720); if (ImageResizeService.ResizeImageFile(fullFilePath, file720, ImageSize.h720, out w, out h)) { var fileInfo = new FileInfo(file720); var sizekb = fileInfo.Length * 0.001M; var f = new FileRecord() { FilePath = f720, Key = name, FileExt = fileExt, Name = fileName, FileType = FileType.Image, SizeKb = sizekb }; db.Files.Add(f); db.SaveChanges(); var i = new ImageRecord() { FileId = f.Id, Name = name, Width = w, Height = h }; i.ImageGroupId = group.Id; i.ImageSize = ImageSize.h720; db.Images.Add(i); db.SaveChanges(); } var f480 = fileName + "_h480." + fileExt; var file480 = Path.Combine(path, f480); if (ImageResizeService.ResizeImageFile(fullFilePath, file480, ImageSize.h480, out w, out h)) { var fileInfo = new FileInfo(file480); var sizekb = fileInfo.Length * 0.001M; var f = new FileRecord() { FilePath = f480, Key = name, FileExt = fileExt, Name = fileName, FileType = FileType.Image, SizeKb = sizekb }; db.Files.Add(f); db.SaveChanges(); var i = new ImageRecord() { FileId = f.Id, Name = name, Width = w, Height = h }; i.ImageGroupId = group.Id; i.ImageSize = ImageSize.h480; db.Images.Add(i); db.SaveChanges(); } var f240 = fileName + "_h240." + fileExt; var file240 = Path.Combine(path, f240); if (ImageResizeService.ResizeImageFile(fullFilePath, file240, ImageSize.h240, out w, out h)) { var fileInfo = new FileInfo(file240); var sizekb = fileInfo.Length * 0.001M; var f = new FileRecord() { FilePath = f240, Key = name, FileExt = fileExt, Name = fileName, FileType = FileType.Image, SizeKb = sizekb }; db.Files.Add(f); db.SaveChanges(); var i = new ImageRecord() { FileId = f.Id, Name = name, Width = w, Height = h }; i.ImageGroupId = group.Id; i.ImageSize = ImageSize.h240; db.Images.Add(i); db.SaveChanges(); } var f128 = fileName + "_h128." + fileExt; var file128 = Path.Combine(path, f128); if (ImageResizeService.ResizeImageFile(fullFilePath, file128, ImageSize.h128, out w, out h)) { var fileInfo = new FileInfo(file128); var sizekb = fileInfo.Length * 0.001M; var f = new FileRecord() { FilePath = f128, Key = name, FileExt = fileExt, Name = fileName, FileType = FileType.Image, SizeKb = sizekb }; db.Files.Add(f); db.SaveChanges(); var i = new ImageRecord() { FileId = f.Id, Name = name, Width = w, Height = h }; i.ImageGroupId = group.Id; i.ImageSize = ImageSize.h128; db.Images.Add(i); db.SaveChanges(); } var f64 = fileName + "_h64." + fileExt; var file64 = Path.Combine(path, f64); if (ImageResizeService.ResizeImageFile(fullFilePath, file64, ImageSize.h64, out w, out h)) { var fileInfo = new FileInfo(file64); var sizekb = fileInfo.Length * 0.001M; var f = new FileRecord() { FilePath = f64, Key = name, FileExt = fileExt, Name = fileName, FileType = FileType.Image, SizeKb = sizekb }; db.Files.Add(f); db.SaveChanges(); var i = new ImageRecord() { FileId = f.Id, Name = name, Width = w, Height = h }; i.ImageGroupId = group.Id; i.ImageSize = ImageSize.h64; db.Images.Add(i); db.SaveChanges(); } var f32 = fileName + "_h32." + fileExt; var file32 = Path.Combine(path, f32); if (ImageResizeService.ResizeImageFile(fullFilePath, file32, ImageSize.h32, out w, out h)) { var fileInfo = new FileInfo(file32); var sizekb = fileInfo.Length * 0.001M; var f = new FileRecord() { FilePath = f32, Key = name, FileExt = fileExt, Name = fileName, FileType = FileType.Image, SizeKb = sizekb }; db.Files.Add(f); db.SaveChanges(); var i = new ImageRecord() { FileId = f.Id, Name = name, Width = w, Height = h }; i.ImageGroupId = group.Id; i.ImageSize = ImageSize.h32; db.Images.Add(i); db.SaveChanges(); } db.SaveChanges(); return(group.Id); } }
public void Spawn(ImageRecord record) { // spawn var startPos = new Vector2(transform.position.x, transform.position.z) + Random.insideUnitCircle.normalized * Mathf.Lerp(MinDistance, MaxDistance, Random.value); var target = SpawnViewTargets.Find(possibleTarget => possibleTarget.gameObject.activeInHierarchy); if (target) { var forward = target.forward.withY(0).normalized; // spawn in player's view var dir = Quaternion.AngleAxis(Mathf.Lerp(-AngleRange, AngleRange, Random.value), Vector3.up); startPos = dir * forward * Mathf.Lerp(MinDistance, MaxDistance, Random.value); } RaycastHit hit; Physics.Raycast(new Vector3(startPos.x, 300, startPos.y), Vector3.down, out hit, 500, CollisionLayers.value); var spawnPos = hit.point.plusY(HeightOffsetFromGround); if (record.Type == ImageType.Animal) { if (DoNestOnAnimalSpawn) { // small patch of grass var plantRecord = ImageReader.Inst.GetWeightedRandomRecord(ImageType.Plant); var seedObj = Instantiate(SeedPrefab); seedObj.transform.position = spawnPos; seedObj.GetComponentInSelfOrChildren <HasImageRecord>().Record = plantRecord; seedObj.GetComponentInSelfOrChildren <Seed>().WillGrowPlant = true; seedObj.GetComponentInSelfOrChildren <Seed>().ForcedType = ImageType.TinyPatch; // nest that keeps spawning eggs var nestObj = Instantiate(NestPrefab); nestObj.transform.position = spawnPos; nestObj.GetComponentInSelfOrChildren <HasImageRecord>().Record = record; } // egg var eggObj = Instantiate(EggPrefab); eggObj.transform.position = spawnPos; eggObj.GetComponentInSelfOrChildren <HasImageRecord>().Record = record; eggObj.GetComponentInSelfOrChildren <Egg>().AutoBreak = true; eggObj.GetComponentInSelfOrChildren <Egg>().ForceGroupParams = true; } else if (record.Type == ImageType.Bird) { // bird is an animal var eggObj = Instantiate(EggPrefab); eggObj.transform.position = spawnPos; eggObj.GetComponentInSelfOrChildren <HasImageRecord>().Record = record; eggObj.GetComponentInSelfOrChildren <Egg>().AutoBreak = true; eggObj.GetComponentInSelfOrChildren <Egg>().ForceGroupParams = true; eggObj.GetComponentInSelfOrChildren <Egg>().AnimalPrefab = BirdPrefab; } else if (record.Type == ImageType.Plant) { // any type of plant var seedObj = Instantiate(SeedPrefab); seedObj.transform.position = spawnPos; seedObj.GetComponentInSelfOrChildren <HasImageRecord>().Record = record; seedObj.GetComponentInSelfOrChildren <Seed>().WillGrowPlant = true; } else if (record.Type == ImageType.Building) { // building is a tree var seedObj = Instantiate(SeedPrefab); seedObj.transform.position = spawnPos; seedObj.GetComponentInSelfOrChildren <HasImageRecord>().Record = record; seedObj.GetComponentInSelfOrChildren <Seed>().WillGrowPlant = true; seedObj.GetComponentInSelfOrChildren <Seed>().ForcedType = ImageType.Tree; } }