示例#1
0
        public static WriteableBitmap ConvertImageRaster2DToWriteableBitmap <RangeType>(ImageRaster2D <RangeType> image_raster_base, IFunction <RangeType, int> converter)
        {
            int width  = image_raster_base.Raster.Size0;
            int height = image_raster_base.Raster.Size1;

            System.Windows.Media.PixelFormat format = System.Windows.Media.PixelFormats.Bgr24;

            WriteableBitmap result = new WriteableBitmap(width, height, 96, 96, System.Windows.Media.PixelFormats.Bgr24, null);

            int[] pixels = ToolsMathFunction.Convert(image_raster_base.GetElementValues(false), converter);
            int   stride = (format.BitsPerPixel / 8) * width;
            int   bytes  = stride * height;

            //TODO convert
            result.Lock();
            result.WritePixels(new Int32Rect(0, 0, width, height), pixels, bytes, stride);
            result.Unlock();
            return(result);
        }
示例#2
0
        public static void DistanceTransform2DOosterbroekRBA(ImageRaster2D <bool> mask_image, float[] voxel_size, ImageRaster2D <float> distance_image)
        {
            ImageRaster3D <bool>  mask_image_3d     = new ImageRaster3D <bool>(mask_image.Raster.Size0, mask_image.Raster.Size1, 1, mask_image.GetElementValues(false), false);
            ImageRaster3D <float> distance_image_3d = new ImageRaster3D <float>(mask_image.Raster.Size0, mask_image.Raster.Size1, 1, distance_image.GetElementValues(false), false);

            DistanceTransform3DOosterbroekRBA(mask_image_3d, voxel_size, distance_image_3d);
        }