示例#1
0
        public async void SetImageSequence(List <IImageProvider> imageProviders)
        {
            ShowProgressIndicator("Aligning frames");
            SetControlsEnabled(false);

            _unalignedImageProviders = imageProviders;
            _onScreenImageProviders  = _unalignedImageProviders;

            // Create aligned images
            using (ImageAligner imageAligner = new ImageAligner())
            {
                imageAligner.Sources         = _unalignedImageProviders;
                imageAligner.ReferenceSource = _unalignedImageProviders[0];

                _alignedImageProviders = await imageAligner.AlignAsync();
            }

            // Create on-screen bitmap for rendering the image providers
            IImageProvider    imageProvider = _onScreenImageProviders[0];
            ImageProviderInfo info          = await imageProvider.GetInfoAsync();

            int width  = (int)info.ImageSize.Width;
            int height = (int)info.ImageSize.Height;

            _foregroundImage = new WriteableBitmap(width, height);
            _backgroundImage = new WriteableBitmap(width, height);

            // Render the first frame of sequence
            await Render(0, true);

            InitializeAnimatedAreaBasedOnImageDimensions(width, height);

            SetControlsEnabled(true);
            HideProgressIndicator();
        }
示例#2
0
        public async Task PrepareImageSequence(List <IImageProvider> imageProviders)
        {
            _unalignedImageProviders = imageProviders;
            _onScreenImageProviders  = _unalignedImageProviders;

            IAsyncImageResource asyncImageResource = (IAsyncImageResource)_unalignedImageProviders[0];
            var info = await asyncImageResource.LoadAsync();

            _unalignedImageWidth  = (int)info.ImageSize.Width;
            _unalignedImageHeight = (int)info.ImageSize.Height;

            using (ImageAligner imageAligner = new ImageAligner())
            {
                imageAligner.Sources         = _unalignedImageProviders;
                imageAligner.ReferenceSource = _unalignedImageProviders[0];

                try
                {
                    _alignedImageProviders = await imageAligner.AlignAsync();

                    asyncImageResource = (IAsyncImageResource)_unalignedImageProviders[0];
                    info = await asyncImageResource.LoadAsync();

                    _alignedImageWidth  = (int)info.ImageSize.Width;
                    _alignedImageHeight = (int)info.ImageSize.Height;
                    await EnableAlign();
                }
                catch (Exception)
                {
                    // If align fails, fail silently but don't enable the align button on UI
                }
            }
        }
示例#3
0
 public HandMouse(ImageAligner aligner, HandMouse.Settings settings)
 {
   base.\u002Ector();
   HandMouse handMouse1 = this;
   this.thresholdedImage = (object) null;
   HandMouse handMouse2 = this;
   throw new NoClassDefFoundError("com.googlecode.javacv.cpp.opencv_core$CvMemStorage");
 }
        public void CreatesAlignerGraph()
        {
            var bitmap = new Bitmap(new Size(10, 10), ColorMode.Argb8888);
            using (var source1 = new BitmapImageSource(bitmap))
            using (var source2 = new BitmapImageSource(bitmap))
            using (var source3 = new BitmapImageSource(bitmap))
            using (var aligner = new ImageAligner())
            {
                aligner.Sources = new[] { source1, source2, source3 };

                string result = aligner.ToDotString("CreatesAlignerGraph");
                Assert.AreEqual(2, new Regex(Regex.Escape(NodeId(source1))).Matches(result).Count);
                Assert.AreEqual(2, new Regex(Regex.Escape(NodeId(source2))).Matches(result).Count);
                Assert.AreEqual(4, new Regex(Regex.Escape(NodeId(aligner))).Matches(result).Count);
            }
        }
        public void CreatesAlignerGraph()
        {
            var bitmap = new Bitmap(new Size(10, 10), ColorMode.Argb8888);

            using (var source1 = new BitmapImageSource(bitmap))
                using (var source2 = new BitmapImageSource(bitmap))
                    using (var source3 = new BitmapImageSource(bitmap))
                        using (var aligner = new ImageAligner())
                        {
                            aligner.Sources = new[] { source1, source2, source3 };

                            string result = aligner.ToDotString("CreatesAlignerGraph");
                            Assert.AreEqual(2, new Regex(Regex.Escape(NodeId(source1))).Matches(result).Count);
                            Assert.AreEqual(2, new Regex(Regex.Escape(NodeId(source2))).Matches(result).Count);
                            Assert.AreEqual(4, new Regex(Regex.Escape(NodeId(aligner))).Matches(result).Count);
                        }
        }
        public async void SetImageSequence(List<IImageProvider> imageProviders)
        {
            ShowProgressIndicator("Aligning frames");
            SetControlsEnabled(false);

            _unalignedImageProviders = imageProviders;
            _onScreenImageProviders = _unalignedImageProviders;

            // Create aligned images
            using (ImageAligner imageAligner = new ImageAligner())
            {
                imageAligner.Sources = _unalignedImageProviders;
                imageAligner.ReferenceSource = _unalignedImageProviders[0];

                _alignedImageProviders = await imageAligner.AlignAsync();
            }

            // Create on-screen bitmap for rendering the image providers
            IImageProvider imageProvider = _onScreenImageProviders[0];
            ImageProviderInfo info = await imageProvider.GetInfoAsync();
            int width = (int)info.ImageSize.Width;
            int height = (int)info.ImageSize.Height;

            _foregroundImage = new WriteableBitmap(width, height);
            _backgroundImage = new WriteableBitmap(width, height);

            // Render the first frame of sequence
            await Render(0, true);

            InitializeAnimatedAreaBasedOnImageDimensions(width, height);

            SetControlsEnabled(true);
            HideProgressIndicator();
        }
示例#7
0
 public HandMouse(ImageAligner aligner)
   : this(aligner, new HandMouse.Settings())
 {
 }
 public virtual void setSettings(ImageAligner.Settings settings)
 {
   this.settings = (GNImageAligner.Settings) settings;
 }
 internal DotVisualizer(string graphName, ImageAligner imageAligner)
 {
     Node(imageAligner);
     DotString = String.Format(graphFormatString, graphName, m_dotString);
 }
        public static string ToDotString(this ImageAligner imageAligner, string graphName = "graph")
        {
            var dotGen = new DotVisualizer(graphName, imageAligner);

            return(dotGen.DotString);
        }
        public async Task PrepareImageSequence(List<IImageProvider> imageProviders)
        {
            _unalignedImageProviders = imageProviders;
            _onScreenImageProviders = _unalignedImageProviders;

            IAsyncImageResource asyncImageResource = (IAsyncImageResource)_unalignedImageProviders[0];
            var info = await asyncImageResource.LoadAsync();
            _unalignedImageWidth = (int)info.ImageSize.Width;
            _unalignedImageHeight = (int)info.ImageSize.Height;

            using (ImageAligner imageAligner = new ImageAligner())
            {
                imageAligner.Sources = _unalignedImageProviders;
                imageAligner.ReferenceSource = _unalignedImageProviders[0];

                try
                {
                    _alignedImageProviders = await imageAligner.AlignAsync();

                    asyncImageResource = (IAsyncImageResource)_unalignedImageProviders[0];
                    info = await asyncImageResource.LoadAsync();
                    _alignedImageWidth = (int)info.ImageSize.Width;
                    _alignedImageHeight = (int)info.ImageSize.Height;
                    await EnableAlign();
                }
                catch (Exception)
                {
                    // If align fails, fail silently but don't enable the align button on UI
                }
            }
        }
 internal DotVisualizer(string graphName, ImageAligner imageAligner)
 {
     Node(imageAligner);
     DotString = String.Format(graphFormatString, graphName, m_dotString);
 }