Binarizza DICOM tramite C#
Crea le tue app .NET per binarizzare i file DICOM utilizzando le API lato server.
Come binarizzare i file DICOM usando C#
L’invenzione della pellicola a colori ha segnato una pietra miliare significativa nel campo della fotografia. Tuttavia, la fotografia classica è intrinsecamente legata alle immagini in bianco e nero. Nonostante le ampie capacità tecniche delle fotocamere di catturare l’intero spettro dei colori, molte persone optano per la monocromia, trasformando le loro immagini in bianco e nero. In questi casi, entra in gioco una funzione di binarizzazione, che converte tutti i pixel in valori binari: "0" per il bianco e "1" per il nero. In altri scenari, questa conversione non è guidata da scelte artistiche ma pratiche, come la preparazione di illustrazioni in bianco e nero per la stampa su libri o giornali. Utilizzando la libreria grafica C#, puoi designare una soglia di luminosità dei pixel. I pixel con valori di luminosità inferiori a questa soglia diventeranno neri, mentre quelli superiori diventeranno bianchi. In alternativa, puoi utilizzare un metodo di binarizzazione adattivo che considera i valori dei pixel nell’area circostante. Questo approccio si traduce in transizioni più fluide tra i limiti di colore nell’immagine in bianco e nero risultante. Per binarizzare i file DICOM, utilizzeremo Aspose.Imaging per .NET API che è un’API di conversione e manipolazione delle immagini ricca di funzionalità, potente e facile da usare per la piattaforma C#. Aprire NuGet gestore pacchetti, cerca Aspose.Imaging e installa. È inoltre possibile utilizzare il seguente comando dalla Console di gestione pacchetti.
Comando della console di Package Manager
PM> Install-Package Aspose.Imaging
Passaggi per binarizzare DICOM tramite C#
Hai bisogno del aspose.imaging.dll per provare il seguente flusso di lavoro nel tuo ambiente.
- Carica file DICOM con il metodo Image.Load
- Binarizza le immagini;
- Salva l’immagine compressa su disco nel formato supportato da Aspose.Imaging
Requisiti di sistema
Aspose.Imaging per .NET è supportato su tutti i principali sistemi operativi. Assicurati solo di avere i seguenti prerequisiti.
- Microsoft Windows o un sistema operativo compatibile con .NET Framework, .NET Core, applicazione Windows, applicazione Web ASP.NET.
- Ambiente di sviluppo come Microsoft Visual Studio.
- Aspose.Imaging per .NET referenziato nel progetto.
Binarizza immagini DICOM - .NET
using Aspose.Imaging; | |
using Aspose.Imaging.FileFormats.Bmp; | |
using Aspose.Imaging.FileFormats.Dicom; | |
using Aspose.Imaging.FileFormats.Emf; | |
using Aspose.Imaging.FileFormats.Jpeg; | |
using Aspose.Imaging.FileFormats.Jpeg2000; | |
using Aspose.Imaging.FileFormats.Png; | |
using Aspose.Imaging.FileFormats.Psd; | |
using Aspose.Imaging.FileFormats.Tiff.Enums; | |
using Aspose.Imaging.ImageFilters.FilterOptions; | |
using Aspose.Imaging.ImageOptions; | |
using Aspose.Imaging.Masking; | |
using Aspose.Imaging.Masking.Options; | |
using Aspose.Imaging.Masking.Result; | |
using Aspose.Imaging.Sources; | |
using System; | |
using System.Collections.Generic; | |
using System.IO; | |
using System.Linq; | |
string templatesFolder = @"c:\Users\USER\Downloads"; | |
BinarizeFixed(); | |
void BinarizeOtsu() | |
{ | |
FilterImages(image => | |
{ | |
//https://apireference.aspose.com/imaging/net/aspose.imaging/rasterimage/methods/binarizeotsu | |
image.BinarizeOtsu(); | |
}, "binarizeotsu"); | |
} | |
void BinarizeBradley() | |
{ | |
FilterImages(image => | |
{ | |
//https://apireference.aspose.com/imaging/net/aspose.imaging/rasterimage/methods/binarizebradley/index | |
image.BinarizeBradley(0.5); | |
}, "binarizebradley"); | |
} | |
void BinarizeFixed() | |
{ | |
FilterImages(image => | |
{ | |
//https://apireference.aspose.com/imaging/net/aspose.imaging/rasterimage/methods/binarizefixed | |
image.BinarizeFixed(70); | |
}, "binarizefixed"); | |
} | |
void FilterImages(Action<RasterImage> doFilter, string filterName) | |
{ | |
List<string> rasterFormats = new List<string>() { "jpg", "png", "bmp", "apng", "dicom", | |
"jp2", "j2k", "tga", "webp", "tif", "gif", "ico" }; | |
List<string> vectorFormats = new List<string>() { "svg", "otg", "odg", "eps", "wmf", "emf", "wmz", "emz", "cmx", "cdr" }; | |
List<string> allFormats = new List<string>(rasterFormats); | |
allFormats.AddRange(vectorFormats); | |
allFormats.ForEach( | |
formatExt => | |
{ | |
var inputFile = Path.Combine(templatesFolder, $"template.{formatExt}"); | |
bool isVectorFormat = vectorFormats.IndexOf(formatExt) > -1; | |
//Need to rasterize vector formats before background remove | |
if (isVectorFormat) | |
{ | |
inputFile = RasterizeVectorImage(formatExt, inputFile); | |
} | |
var outputFile = Path.Combine(templatesFolder, $"{filterName}_{formatExt}.png"); | |
Console.WriteLine($"Processing {formatExt}"); | |
using (var image = (RasterImage)Image.Load(inputFile)) | |
{ | |
doFilter(image); | |
//If image is multipage save each page to png to demonstrate results | |
if (image is IMultipageImage multiPage && multiPage.PageCount > 1) | |
{ | |
for (var pageIndex = 0; pageIndex < multiPage.PageCount; pageIndex++) | |
{ | |
string fileName = $"{filterName}_page{pageIndex}_{formatExt}.png"; | |
multiPage.Pages[pageIndex].Save(templatesFolder + fileName, new PngOptions()); | |
File.Delete(templatesFolder + fileName); | |
} | |
} | |
else | |
{ | |
image.Save(outputFile, new PngOptions()); | |
File.Delete(outputFile); | |
} | |
} | |
//Remove rasterized vector image | |
if (isVectorFormat) | |
{ | |
File.Delete(inputFile); | |
} | |
} | |
); | |
} | |
string RasterizeVectorImage(string formatExt, string inputFile) | |
{ | |
string outputFile = Path.Combine(templatesFolder, $"rasterized.{formatExt}.png"); | |
using (var image = Image.Load(inputFile)) | |
{ | |
image.Save(outputFile, new PngOptions()); | |
} | |
return outputFile; | |
} |
Informazioni su Aspose.Imaging per l'API .NET
Aspose.Imaging API è una soluzione di elaborazione delle immagini per creare, modificare, disegnare o convertire immagini (foto) all’interno delle applicazioni. Offre: elaborazione delle immagini multipiattaforma, incluse, a titolo esemplificativo ma non esaustivo, conversioni tra vari formati di immagine (inclusa elaborazione uniforme di immagini multipagina o multiframe), modifiche come disegnare, lavorare con primitive grafiche, trasformazioni (ridimensiona, ritaglia, capovolgi e ruota , binarizzazione, scala di grigi, regolazione), funzionalità avanzate di manipolazione delle immagini (filtro, dithering, mascheratura, raddrizzatura) e strategie di ottimizzazione della memoria. È una libreria autonoma e non dipende da alcun software per le operazioni sulle immagini. È possibile aggiungere facilmente funzionalità di conversione delle immagini ad alte prestazioni con API native all’interno dei progetti. Si tratta di API locali private al 100% e le immagini vengono elaborate sui tuoi server.Binarizza DICOM tramite l’app online
Binarizzare i documenti DICOM visitando il nostro sito web demo live . La demo dal vivo ha i seguenti vantaggi
DICOM Cos'è DICOM Formato del file
DICOM è l'acronimo di Digital Imaging and Communications in Medicine e appartiene al campo dell'informatica medica. DICOM è la combinazione di definizione del formato file e protocollo di comunicazione di rete. DICOM utilizza l'estensione .DCM. .DCM esiste in due diversi formati, ovvero il formato 1.x e il formato 2.x. DCM Format 1.x è inoltre disponibile in due versioni normale ed estesa. DICOM viene utilizzato per l'integrazione di dispositivi di imaging medico come stampanti, server, scanner, ecc. di vari fornitori e contiene anche i dati di identificazione di ciascun paziente per l'unicità. I file DICOM possono essere condivisi tra due parti se sono in grado di ricevere dati di immagine in formato DICOM. La parte di comunicazione di DICOM è il protocollo del livello dell'applicazione e utilizza TCP/IP per comunicare tra entità. I protocolli HTTP e HTTPS vengono utilizzati per i servizi Web di DICOM. Le versioni supportate dai servizi Web sono 1.0, 1.1, 2 o successive.
Per saperne di piùAltri formati di binarizzazione supportati
Usando C#, si possono facilmente binarizzare diversi formati tra cui.