예제 #1
0
        public NoiseWave()
        {
            incRange    = Random.Range(0.000001f, 0.5f);
            incNoiseAmt = Random.Range(0.0000001f, 0.1f);
            incNoise    = new Noiser(Mathf.Deg2Rad * -incRange, Mathf.Deg2Rad * incRange, incNoiseAmt);


            amp         = 0;
            ampRange    = (1f / incRange);
            ampNoiseAmt = Random.Range(0.01f, 0.1f);
            ampNoise    = new Noiser(Mathf.Deg2Rad * -ampRange, Mathf.Deg2Rad * ampRange, ampNoiseAmt);


            angle = Random.Range(0f, TWO_PI);
        }
예제 #2
0
        public async Task Load(double noise, string directory)
        {
            if (Images.Count <= 0)
            {
                Images = new ObservableCollection <ImageFile>(await ImageLoader.LoadImagesFromDir(directory));
            }

            if (Images.Count > 0)
            {
                Width      = Images[0].Width;
                Height     = Images[0].Height;
                MaxGrayVal = Images[0].MaxGrayVal;
            }

            // Shuffle images
            if (_start == 0 && _epoch == 0)
            {
                var rand = new Random();

                for (var i = Images.Count - 1; i >= 0; i--)
                {
                    var j    = rand.Next(i);
                    var temp = Images[j];
                    Images[j] = Images[i];
                    Images[i] = temp;
                }
            }

            var noiser = new Noiser(noise);

            NoisedImages = new ObservableCollection <ImageFile>(await noiser.NoiseImagesAsync(Images));

            ResultImages = new ObservableCollection <ImageFile>();

            OnPropertyChanged(nameof(Images));
            OnPropertyChanged(nameof(NoisedImages));
            OnPropertyChanged(nameof(ResultImages));
        }