コード例 #1
0
ファイル: CompositorBuilder.cs プロジェクト: wds657/sanchez
        /// <summary>
        ///     Creates a new builder.
        /// </summary>
        /// <param name="stack">image to compose</param>
        /// <param name="options">render options</param>
        public CompositorBuilder(ImageStack stack, RenderOptions options)
        {
            _stack   = stack;
            _options = options;

            _image = _stack.Underlay !;
        }
コード例 #2
0
        /// <summary>
        /// Initializes the 2D view with the given ImageStack
        /// </summary>
        public void Initialize(ImageStack imageStack)
        {
            foreach (var type in Enum.GetValues(typeof(SliceType)).Cast <SliceType>())
            {
                _selection[type] = 0;
            }

            if (_pixelClickHandler == null)
            {
                _pixelClickHandler = gameObject.GetComponentInChildren <PixelClickHandler>();
            }

            _imageStack = imageStack;

            SliceSlider.MaximumValue = _imageStack.GetMaxValue(CurrentSliceType);
            SliceSlider.CurrentInt   = _selection.GetValue(CurrentSliceType, 0);

            _pixelClickHandler.OnPixelClick.AddListener(OnPixelClicked);

            try
            {
                // key might not be present in dictionary
                Display.texture = _imageStack.GetTexture2D(CurrentSliceType, _selection.GetValue(CurrentSliceType));
            }
            finally
            {
                ResetClickDisplay(_imageStack.Width, _imageStack.Height);
                ClickDisplay.color = new Color32(255, 255, 255, 255);
            }
        }
コード例 #3
0
        /// <summary>
        /// Preprocessing of the DiFiles is completed.
        /// </summary>
        private void OnPreProcessDone()
        {
            WindowSettingsPanel.EnableButtons();

            MainMenu.EnableButtons();
            MainMenu.EnableDropDown();
            var preview = MainMenu.PreviewImage.texture as Texture2D;

            if (!preview || preview.width != _stack.Width || preview.height != _stack.Height)
            {
                // Could be avoided if single preloaded texture would be stored in imagestack to save memory
                preview = new Texture2D(_stack.Width, _stack.Height, TextureFormat.ARGB32, false);
                MainMenu.PreviewImage.texture = preview;
            }

            var pixels = preview.GetPixels32();

            ImageStack.FillPixelsTransversal(_stack.Slices / 2, _stack.GetData(), _stack.Width, _stack.Height, _stack.DicomFiles, pixels);

            preview.SetPixels32(pixels);
            preview.Apply();

            MainMenu.PreviewImage.texture = preview;

            _workIndicator.FinishedWork();
        }
コード例 #4
0
        /*----------------------------------------------------------------------------------------------------------------------------------------*/
        //
        // ViewModel Logic
        //
        /*----------------------------------------------------------------------------------------------------------------------------------------*/

        #region ViewModel Logic

        private void InitImageStackLayout()
        {
            ImageStack.Clear();
            var target = (from a in _bodyImageList
                          select a).Skip(NowPage * PageSize).Take(PageSize);

            foreach (var value in target)
            {
                var childStackLayout = new StackLayout();
                var imageAsBytes     = Convert.FromBase64String(value.ImageBase64String);
                var bodyImage        = new Image
                {
                    Source = ImageSource.FromStream(() =>
                                                    new MemoryStream(ViewModelCommonUtil.GetResizeImageBytes(imageAsBytes, 500, 625)))
                };
                childStackLayout.Children.Add(bodyImage);

                var registedDateLabel = new Label
                {
                    Text = value.RegistedDate.ToString(ViewModelCommonUtil.DateTimeFormatString),
                    HorizontalOptions = LayoutOptions.Center
                };
                childStackLayout.Children.Add(registedDateLabel);
                ImageStack.Add(childStackLayout);
            }
        }
コード例 #5
0
        // Use this for initialization
        private void Start()
        {
            _workIndicator = FindObjectOfType <GlobalWorkIndicator>();
            MainMenu.ClearDropdown();

            var folders = new List <string>(Directory.GetDirectories(Application.streamingAssetsPath));

            var names = new List <string>();

            for (var index = 0; index < folders.Count; index++)
            {
                var fold = folders[index];
                names.Add(fold.Split('\\')[1]);
            }

            MainMenu.AddDropdownOptions(names);

            _stack = gameObject.AddComponent <ImageStack>();
            _stack.OnTextureUpdate.AddListener(Slice2DView.TextureUpdated);

            _segmentCache = gameObject.AddComponent <SegmentCache>();
            _segmentCache.TextureReady.AddListener(Slice2DView.SegmentTextureUpdated);
            _segmentCache.SegmentChanged.AddListener(SegmentChanged);

            Slice2DView.SegmentCache = _segmentCache;

            WindowSettingsPanel.OnSettingsChangedEvent.AddListener(_stack.OnWindowSettingsChanged);
            WindowSettingsPanel.gameObject.SetActive(false);

            //Volume.SetActive(false);
            VolumeRenderingParent.SetActive(false);
            RotationObjectParent.SetActive(false);

            Slice2DView.gameObject.SetActive(false);

            SegmentConfiguration.transform.gameObject.SetActive(false);
            SegmentConfiguration.OnSelectionChanged2D.AddListener(SelectionChanged2D);
            SegmentConfiguration.OnSelectionChanged3D.AddListener(SelectionChanged3D);
            SegmentConfiguration.OnHideBaseChanged.AddListener(HideBaseChanged);

            Slice2DView.OnPointSelected.AddListener(SegmentConfiguration.UpdateRegionSeed);

            MainMenu.DisableButtons();
        }
コード例 #6
0
ファイル: SegmentCache.cs プロジェクト: mrcdnk/dicomholo
        // Start is called before the first frame update
        private void Start()
        {
            _workIndicator = FindObjectOfType <GlobalWorkIndicator>();

            _imageStack = FindObjectOfType <ImageStack>();
        }
コード例 #7
0
ファイル: OrthoSlices.cs プロジェクト: mrcdnk/dicomholo
 public void Initialize(ImageStack stack)
 {
     _imageStack          = stack;
     _transStep           = 1f / (stack.GetMaxValue(SliceType.Transversal));
     TransSlider.maxValue = stack.GetMaxValue(SliceType.Transversal);
 }