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); }
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); }