public override IObservable <ConnectedComponentCollection> Process(IObservable <Contours> source) { return(source.Select(input => { var currentContour = input.FirstContour; var output = new ConnectedComponentCollection(input.ImageSize); while (currentContour != null) { var component = ConnectedComponent.FromContour(currentContour); currentContour = currentContour.HNext; output.Add(component); } return output; })); }
public IObservable <ConnectedComponentCollection> Process(IObservable <Tuple <Contours, IplImage> > source) { return(source.Select(input => { var image = input.Item2; var contours = input.Item1; var currentContour = contours.FirstContour; var output = new ConnectedComponentCollection(image.Size); while (currentContour != null) { var component = ConnectedComponent.FromContour(currentContour); component.Patch = image.GetSubRect(component.Contour.Rect); currentContour = currentContour.HNext; output.Add(component); } return output; })); }
public IObservable <ConnectedComponent> Process(IObservable <Seq> source) { return(source.Select(input => ConnectedComponent.FromContour(input))); }