DICOM は、医療用デジタル画像および通信に関する国際規格 (ISO 12052) です。次の記事では、Java で DICOM 図を解析して 16 進数データを取得する方法について主に説明します。サンプルコードが詳しく紹介されているので、困っている友達は参考にしてください。
はじめに
最近のプロジェクトでは、DICOM 画像を解析するために JAVA が必要でした。DICOM は放射線医学、心臓血管画像診断、放射線診断および治療機器 (X 線、CT、MRI、超音波、など)、眼科や歯科などの他の医療分野でもますます広く使用されています。実装中に発生したいくつかの問題を以下に記録します。
まず *.dcm ファイルを見つけます。エディターで開くと、次のインターフェイスが表示されます。私が使用しているエディターは UltraEdit です
赤い文字はバイトコードの注釈です コードの最初の 8 行はファイルのヘッダー情報であり、通常は役に立ちません。 9行目から始まる4つの16進数「44,49,43,4D」が重要です。 ASCll コードの説明は DICM です。これら 4 つの 16 進数が失われたり破損したりすると、DICOM 画像を開くことができなくなります。
以下では、Java を使用してこれらの 16 進数を読み取ります
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class My_DICOM { static FileInputStream input; static byte[] b; public static void main(String[] args) { try { File file = new File("G:/zzz.dcm"); input = new FileInputStream(file); b = new byte[(int) file.length()]; input.read(b); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } init(); } public static void init(){ System.out.println("b.length="+b.length); for (int i =0;i<10000;i++) { System.out.print(Integer.toHexString(b[i])); if (i%16==15) { System.out.println(); }else{ System.out.print(", "); } } } }
(ファイルが大きすぎて 130,000 バイトあるため、表示のために 10,000 回だけループされています。最初の部分を読んでください) 10,000 バイト)
上記のコードは非常に一般的で、ファイル ストリームをバイト配列に読み取るものです。 Integer.toHexString(b[i])
を使用して 16 進数に変換します。 Integer.toHexString(b[i])
将其转化成十六进制。
问题出现了。
运行后:
对照上面的编辑器打开的十六进制列表红字处本该是a6可是却打印出了ffffffa6。
查找问题
笔算出错字节所在的位置是140。打印system.out.pritln(b[140]);
コントロール上 エディタで開いた16進数リストの赤字はa6のはずですが、ffffffa6と出力されます。
問題を見つけてください
間違ったバイトの位置は 140 です。 system.out.pritln(b[140]);
を出力すると、結果は -90 になります。なぜ -90 なのでしょうか? a6まで遡って10進数に変換すると166になるはずです。
以上が16 進データを取得するための Java 解析 DICOM 図の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版
便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
