ImageProcessor.Processor.ThresholdUM C# (CSharp) Méthode

ThresholdUM() public méthode

public ThresholdUM ( float thresh ) : Image
thresh float
Résultat Image
        public unsafe Image ThresholdUM(float thresh)
        {
            Bitmap b = new Bitmap(_image);

            BitmapData bData = b.LockBits(new Rectangle(0, 0, _image.Width, _image.Height), ImageLockMode.ReadWrite, b.PixelFormat);

            byte bitsPerPixel = GetBitsPerPixel(bData.PixelFormat);

            int size = bData.Stride * bData.Height;

            byte* scan0 = (byte *)bData.Scan0.ToPointer();

            int colWidth = bData.Width * bitsPerPixel / 8;

            for (int i = 0; i < bData.Height; ++i)
            {
                for (int j = 0; j < bData.Width; ++j)
                {
                    byte* data = scan0 + i*bData.Stride+j*bitsPerPixel / 8;

                    double magnitude = Math.Sqrt(Math.Pow(data[0], 2) + Math.Pow(data[1], 2) + Math.Pow(data[2], 2));
                    if (magnitude < thresh)
                    {
                        data[0] = 0;
                        data[1] = 0;
                        data[2] = 0;
                    }
                    else
                    {
                        data[0] = 255;
                        data[1] = 255;
                        data[2] = 255;
                    }
                }
            }

            b.UnlockBits(bData);

            return b;
        }