public TissueAnnotaionList groubByOnClassAndOthers(String ClassName)
        {
            TissueAnnotaionList newList = new TissueAnnotaionList();

            foreach (TissueAnnotationClass annotaion in this.tissueList)
            {
                TissueAnnotationClass newAnnotaion = annotaion.Clone();
                if (!newAnnotaion.getAnnotaionClass().Equals(ClassName))
                {
                    newAnnotaion.setAnnotaionClassOther();
                }
                newList.add(newAnnotaion);
            }
            newList.sort();
            return(newList);
        }
        private static TissueAnnotaionList GetAnnotaions(String srcSlides, String outputPics)
        {
            TissueAnnotaionList annotationList = new TissueAnnotaionList();
            int i = 0;

            //Get Anotaions from silde
            foreach (var slideName in Util.GetSlideFilenames(new String[] { srcSlides }))
            {
                using (var slideCache = new SlideCache(slideName))
                {
                    Parallel.ForEach(slideCache.Slide.GetAnnotations(), (annotation) =>
                    {
                        if (abort != 0)
                        {
                            if (i >= abort)
                            {
                                return;
                            }
                            i++;
                        }

                        //Annotaions Bitmap extrahieren
                        var contained = new List <IAnnotation>();
                        foreach (var candidate in slideCache.Slide.GetAnnotations())
                        {
                            if (candidate == annotation)
                            {
                                continue;
                            }
                            var rectangle = annotation.BoundingBox;
                            rectangle.Intersect(candidate.BoundingBox);
                            if (rectangle.IsEmpty)
                            {
                                continue;
                            }
                            if (annotation.BoundingBox.Contains(candidate.BoundingBox))
                            {
                                contained.Add(candidate);
                            }
                        }

                        using (Bitmap annotationBitmap = annotation.Extract(1, contained))
                        {
                            TissueAnnotationClass tissueAnnotation = new TissueAnnotationClass(annotation.Id, annotation.Name, slideCache.SlideName);

                            //Werte Berechnsen
                            tissueAnnotation = tissueAnnotation.ComputeFeatureValues(annotationBitmap);

                            //Zur Liste hinzufügren
                            annotationList.add(tissueAnnotation);

                            //FOR DEBUG Save Image
                            if (isSave)
                            {
                                annotationBitmap.Save(outputPics + "\\" + tissueAnnotation + ".png");
                            }

                            Console.WriteLine(tissueAnnotation + " exc:" + contained.Count);
                        }
                    });
                    if (abort != 0 && i >= abort)
                    {
                        return(annotationList);
                    }
                }
            }
            return(annotationList);
        }