จั่นเจาดอทคอม ถามตอบ คอมพิวเตอร์ อินเตอร์เน็ต Forex MT4 MT5 เทรดทอง

Comment แสดงความคิดเห็น (Register) => Comment แสดงความคิดเห็น (Register) => Topic started by: junjao on May 09, 2025, 12:17:26 PM

Title: การแปลงไฟล์ .pdf เป็นไฟล์ .dicom
Post by: junjao on May 09, 2025, 12:17:26 PM
การแปลงไฟล์ `.pdf` เป็นไฟล์ `.dicom` (Digital Imaging and Communications in Medicine) เป็นกระบวนการที่ค่อนข้างเฉพาะทาง เพราะ `.dicom` เป็นฟอร์แมตเฉพาะสำหรับภาพทางการแพทย์ เช่น X-ray, CT, MRI และมี metadata ทางการแพทย์ (เช่น ชื่อผู้ป่วย วันเวลา เครื่องที่ใช้ ฯลฯ) ซึ่ง `.pdf` ไม่ได้มีข้อมูลเหล่านี้อยู่โดยตรง

อย่างไรก็ตาม ถ้าเป้าหมายของคุณคือ:

---

### ✅ **แปลงภาพจาก PDF ไปเป็น DICOM (เช่น รายงานผลหรือรูปสแกนใน PDF ที่อยากเก็บในระบบ PACS)**

สามารถทำได้โดยแปลงเป็นภาพก่อน แล้วนำไปสร้างเป็น DICOM ดังนี้:

#### ขั้นตอน:

1. **แปลง PDF เป็นภาพ (PNG หรือ JPEG):**

   * ใช้โปรแกรมอย่าง:

     * `pdf2image` (Python)
     * Adobe Acrobat (Export As Image)
     * Online tools เช่น [pdf2jpg.net](https://pdf2jpg.net/)

2. **นำภาพไปแปลงเป็น DICOM:**

   * ใช้เครื่องมือ เช่น:

     * **GDCM (Grassroots DICOM)** – เครื่องมือใน command line:

       ```bash
       img2dcm input.jpg output.dcm
       ```
     * **DCMTK (OFFIS DICOM Toolkit)** – ใช้ `img2dcm`
     * **Python + pydicom**:

       ```python
       import pydicom
       from pydicom.dataset import Dataset, FileDataset
       from PIL import Image
       import numpy as np
       import datetime

       # Load image
       img = Image.open("input.jpg").convert("L")  # Grayscale
       np_img = np.array(img)

       # Create DICOM dataset
       file_meta = pydicom.Dataset()
       ds = FileDataset("output.dcm", {}, file_meta=file_meta, preamble=b"\0" * 128)
       ds.Modality = 'OT'  # Other
       ds.PatientName = 'Test^Patient'
       ds.PatientID = '123456'
       ds.StudyInstanceUID = "1.2.3.4"
       ds.SeriesInstanceUID = "1.2.3.4.1"
       ds.SOPInstanceUID = "1.2.3.4.1.1"
       ds.SOPClassUID = pydicom.uid.SecondaryCaptureImageStorage
       ds.is_little_endian = True
       ds.is_implicit_VR = True
       ds.PixelData = np_img.tobytes()
       ds.Rows, ds.Columns = np_img.shape
       ds.save_as("output.dcm")
       ```

---

### ❌ สิ่งที่ไม่สามารถทำได้โดยตรง:

* ไม่สามารถแปลง `.pdf` ที่เป็นข้อความหรือรายงานเฉย ๆ เป็น `.dicom` ที่สมบูรณ์ได้โดยตรง เพราะ DICOM ต้องการข้อมูลภาพและ metadata เฉพาะ

-----------------------------------------