Exemplo n.º 1
0
        public ImageDescription test(ImageDescription inputImage)
        {
            setInputImageToContexts(inputImage);
            ImageDescription outputImage = ImageDescriptionUtil.createGrayscaleImageWithSameSize(inputImage);

            computeIndexes();

            //for (int positionY = 0; positionY < inputImage.sizeY; positionY++)
            //{
            //    for (int positionX = 0; positionX < inputImage.sizeX; positionX++)
            //    {

            int numberOfIndexes = currentInputImage.sizeX * currentInputImage.sizeY;
            //for (int computedIndex = 0; computedIndex < numberOfIndexes; computedIndex++)  
            Parallel.For(0, numberOfIndexes, new ParallelOptions { MaxDegreeOfParallelism = GeneralConfiguration.maximumNumberOfThreads }, (computedIndex) =>
            {
                int positionX = computedIndex % currentInputImage.sizeX;
                int positionY = computedIndex / currentInputImage.sizeX;
                float probability;
                float feebackProbability;
                float outputProbability;
                computeProbabilityForPosition(positionX, positionY, computedIndex, out probability, out feebackProbability, out outputProbability);
                outputImage.gray[positionY, positionX] = (byte)(outputProbability * 255 + 0.5f);
            }
            );
            //    }
            //}

            return outputImage;
        }