//筛选出Class 下的Point对应的名义值 public void ReadTable(ImagePoint imagePointModel) { if (NominalTable == null) { return; } if (imagePointModel.ImagePointArray == null) { return; } NominalArray = new List <DM_ModelNominal>(); DataTableReader reader = new DataTableReader(NominalTable); while (reader.Read()) { DM_ModelNominal nominal = new DM_ModelNominal(); nominal.NominalID = Convert.ToUInt32(reader[0]); nominal.PointID = Convert.ToUInt32(reader[1]); foreach (DM_ModelImagePoint item in imagePointModel.ImagePointArray) { if (item.PointID == nominal.PointID) { nominal.Nominal = Convert.ToSingle(reader[2]); nominal.UpTol = Convert.ToSingle(reader[3]); nominal.LowTol = Convert.ToSingle(reader[4]); nominal.NominalType = Convert.ToInt32(reader[8]); nominal.Status = Convert.ToInt32(reader[9]); nominal.PointDir = reader[10].ToString(); nominal.DirName = reader[11].ToString(); nominal.RelationPoint = reader[12].ToString(); NominalArray.Add(nominal); } } } }
private void AddPointToClosestCluster(ImagePoint point) { CentroidPoint closestCentroid = ClosestCentroidTo(point); _clusters[closestCentroid.ID].AddPoint(point); }
private void paintPanel_MouseMove(object sender, MouseEventArgs e) { if(isDrawing == true) { ImagePoint newPoint = new ImagePoint(new Point(lastPoint.X, lastPoint.Y), new Point(e.X, e.Y), myPen.Color); parentForm.SendImage(newPoint); } lastPoint.X = e.X; lastPoint.Y = e.Y; }
private void Zoom_KeyDown(object sender, KeyEventArgs e) { if (this.ViewModel.Project == null) { return; } if (e.Key == Key.LeftShift || e.Key == Key.RightShift) { foreach (ElementVM element in this.ViewModel.Project.Selected) { element.Opacity = 0.25; } } if (e.Key == Key.Up || e.Key == Key.Down || e.Key == Key.Left || e.Key == Key.Right) { if (!this.moving && this.ViewModel.Project.Selected.Count > 0) { this.moving = true; this.origin = new ImagePoint(this.ViewModel.Project.Selected[0].X, this.ViewModel.Project.Selected[0].Y); this.ViewModel.DragStart(this.origin); if (Keyboard.IsKeyDown(Key.Up)) { this.change.Y--; } if (Keyboard.IsKeyDown(Key.Down)) { this.change.Y++; } if (Keyboard.IsKeyDown(Key.Left)) { this.change.X--; } if (Keyboard.IsKeyDown(Key.Right)) { this.change.X++; } this.ViewModel.DragUpdate(this.origin + this.change); } else if (this.moving) { if (Keyboard.IsKeyDown(Key.Up)) { this.change.Y--; } if (Keyboard.IsKeyDown(Key.Down)) { this.change.Y++; } if (Keyboard.IsKeyDown(Key.Left)) { this.change.X--; } if (Keyboard.IsKeyDown(Key.Right)) { this.change.X++; } this.ViewModel.DragUpdate(this.origin + this.change); } } }
public DragSelect(ImagePoint start) { this.start = start; }
public byte[] Map(ImagePoint point) { return(new byte[] { (byte)(point.X & (byte)0xFF) }); }
private void InitializeViews() { source_image_panel = new SourceImagePanel(); IImageD_Provider main_image = source_image_panel.GetImageD_Provider(0); IImageD_Provider side_image = source_image_panel.GetImageD_Provider(1); IPointsProvider <PointsProviders.MSOP_DescriptorVector.Descriptor> main_feature_points_provider = new PointsProviders.MSOP_DescriptorVector(new PointsProviders.HarrisCornerDetector(main_image), new MatrixProviders.GrayScale(main_image)); IPointsProvider <PointsProviders.MSOP_DescriptorVector.Descriptor> side_feature_points_provider = new PointsProviders.MSOP_DescriptorVector(new PointsProviders.HarrisCornerDetector(side_image), new MatrixProviders.GrayScale(side_image)); IImageD_Provider mp_merge_refined = new ImageD_Providers.PlotPoints( new ImageD_Providers.GrayImageD(new MatrixProviders.GrayScale(main_image)), main_feature_points_provider ); Controls.PointSelect main_features = new Controls.PointSelect(main_image, main_feature_points_provider); Controls.PointSelect side_features = new Controls.PointSelect(side_image, side_feature_points_provider); main_features.PointSelected += selected_point => { var main_descriptor = (selected_point as ImagePoint <PointsProviders.MSOP_DescriptorVector.Descriptor>).content; ImagePoint nearst = null; double first_min = double.MaxValue, second_min = double.MaxValue; foreach (var p in side_features.points) { double dis = main_descriptor.difference((p as ImagePoint <PointsProviders.MSOP_DescriptorVector.Descriptor>).content); if (dis < first_min) { second_min = first_min; first_min = dis; nearst = p; } else if (dis < second_min) { second_min = dis; } } if (first_min / second_min < 0.8) { LogPanel.Log($"nearst feature diff = {main_descriptor.difference((nearst as ImagePoint<PointsProviders.MSOP_DescriptorVector.Descriptor>).content)}"); side_features.ShowPoint(nearst.x, nearst.y); } else { LogPanel.Log($"nearst feature too similar, no match!"); } }; //this.Height = 500; //this.Width = 800; this.Content = new ScrollViewer { HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled, VerticalScrollBarVisibility = ScrollBarVisibility.Visible, Content = new StackPanel { Orientation = Orientation.Vertical, Children = { source_image_panel, new Grid { ColumnDefinitions = { new ColumnDefinition { Width = new GridLength(1,GridUnitType.Star) }, new ColumnDefinition { Width = new GridLength(1,GridUnitType.Star) } }, Children = { new Button { Content = "Run" }.Set(async() =>{ await Task.Run(() => { mp_merge_refined.GetImageD(); }); LogPanel.Log("done."); }).Set(0, 0), new Button { Content = "Reset" }.Set(async() =>{ await Task.Run(() => { mp_merge_refined.Reset(); }); LogPanel.Log("reseted."); }).Set(0, 1) } }, //(new ImageViewer(mp_r)), //(new ImageViewer(mp_hr)), //(new ImageViewer(mp_g)), //(new ImageViewer(mp_hg)), //(new ImageViewer(mp_b)), //(new ImageViewer(mp_hb)), new ImageViewer(mp_merge_refined,false), //new ImageViewer(main_image,false), //new Controls.PointSelect(source_image_panel,new PointsProviders.PointsCache(new List<ImagePoint>{ new ImagePoint(10,10,1),new ImagePoint(100,50,5) })) main_features, side_features } } }; }
public DragAreaElement(ImagePoint start, ElementId element) { this.start = start; this.element = element; }
IEnumerable <ImagePoint> GetPoints() { var list = new List <ImagePoint>(); // { // // new ImagePoint() // { // X = MaxValues.MinX, // Y = MaxValues.MinY, // Z = MaxValues.MaxZ, // // R = MaxValues.MaxRGB, // G = MaxValues.MaxRGB, // B = MaxValues.MaxRGB, // // Blanking = false // }, // // new ImagePoint() // { // X = MaxValues.MaxX, // Y = MaxValues.MinY, // Z = MaxValues.MaxZ, // // R = MaxValues.MaxRGB, // G = MaxValues.MaxRGB, // B = MaxValues.MaxRGB, // // Blanking = false // }, // // // new ImagePoint() // { // X = MaxValues.MaxX, // Y = MaxValues.MaxY, // Z = MaxValues.MaxZ, // // R = MaxValues.MaxRGB, // G = MaxValues.MaxRGB, // B = MaxValues.MaxRGB, // // Blanking = false // }, // // // new ImagePoint() // { // X = MaxValues.MinX, // Y = MaxValues.MaxY, // Z = MaxValues.MaxZ, // // R = MaxValues.MaxRGB, // G = MaxValues.MaxRGB, // B = MaxValues.MaxRGB, // // Blanking = false // } //}; for (int y = MaxValues.MinY; y <= MaxValues.MaxY; y++) { for (int x = MaxValues.MinX; x <= MaxValues.MaxX; x++) { var point = new ImagePoint() { X = x, Y = y, Z = MaxValues.MaxZ, R = MaxValues.MaxRGB, G = MaxValues.MaxRGB, B = MaxValues.MaxRGB, Blanking = y >= MaxValues.MaxY - 2 && x >= MaxValues.MaxX - 2 }; list.Add(point); } } return(list); }
protected ImagePoint RecordToPoint(CoordinateRecord ildaRecord, FormatCode formatCode, IList <RecordColourPalette> palette) { var res = new ImagePoint(); switch (formatCode) { case FormatCode.Format2DIndexedColour: { var r = (Record2DIndexed)ildaRecord; var c = palette[r.ColourIndex]; res.X = r.X; res.Y = r.Y; res.Blanking = r.Blanking; res.R = c.Red; res.G = c.Green; res.B = c.Blue; break; } case FormatCode.Format2DTrueColour: { var r = (Record2DTrueColour)ildaRecord; res.X = r.X; res.Y = r.Y; res.Blanking = r.Blanking; res.R = r.Red; res.G = r.Green; res.B = r.Blue; break; } case FormatCode.Format3DIndexedColour: { var r = (Record3DIndexed)ildaRecord; var c = palette[r.ColourIndex]; res.X = r.X; res.Y = r.Y; res.Z = r.Z; res.Blanking = r.Blanking; res.R = c.Red; res.G = c.Green; res.B = c.Blue; break; } case FormatCode.Format3DTrueColour: { var r = (Record3DTrueColour)ildaRecord; res.X = r.X; res.Y = r.Y; res.Z = r.Z; res.Blanking = r.Blanking; res.R = r.Red; res.G = r.Green; res.B = r.Blue; break; } default: throw new ArgumentException($"Unknown FormatCode '{formatCode}'", nameof(formatCode)); } return(res); }