dcmmklut(1) OFFIS DCMTK dcmmklut(1)

dcmmklut - ساخت جدول‌های جستجوی دایکام (DICOM look-up tables)

dcmmklut [options] dcmimg-out

ابزار dcmmklut امکان ایجاد انواع جدول‌های جستجوی (LUT) مدالیته (Modality)، نمایش (Presentation) و VOI را در استاندارد DICOM فراهم می‌کند و برای ساخت تصاویر آزمایشی در نظر گرفته شده است. این ابزار قادر است یک فایل تصویر دایکام موجود را بخواند، بر اساس گزینه‌های خط فرمان یک جدول جستجو بسازد، و شیء جدید را مجدداً در فایل بنویسد. همچنین امکان ایجاد یک شیء جدید حاوی LUT مشخص‌شده بدون خواندن فایل تصویر دایکام موجود نیز وجود دارد. این قابلیت به عنوان مثال برای ذخیره ساده جدول‌های جستجوی مختلف در یک ساختار شبیه دایکام مفید است. به صورت پیش‌فرض، فایل خروجی با همان نحو انتقال (transfer syntax) استفاده‌شده برای فایل ورودی کدگذاری می‌شود، اما نحو انتقال را می‌توان به عنوان یک گزینه خط فرمان نیز تعیین کرد.

داده‌های LUT را می‌توان از شکل یک منحنی گاما (مقدار پیش‌فرض برای ضریب گاما ۱ است) استخراج کرد یا از یک فایل وارد (import) نمود (در حال حاضر قالب MAP نرم‌افزار PhotoImpact متعلق به Ulead و یک قالب متنی ساده پشتیبانی می‌شوند). پهنای ورودی و خروجی LUT نیز می‌تواند در محدوده مجاز استاندارد DICOM تعیین شود. درون‌یابی محدوده ورودی توسط یک الگوریتم برازش منحنی چندجمله‌ای انجام می‌گیرد.

علاوه بر فایل خروجی DICOM، داده‌های LUT را می‌توان به یک فایل متنی با جداکننده برگه (tab) نیز صادر کرد که امکان مصورسازی آسان منحنی‌ها را با برنامه‌های متداول صفحات گسترده (مانند Microsoft Excel) فراهم می‌سازد.

dcmimg-out  نام فایل خروجی DICOM (علامت "-" برای stdout)

-h   --help
       چاپ این متن راهنما و خروج
     --version
       چاپ اطلاعات نسخه و خروج
     --arguments
       چاپ آرگومان‌های بسط‌یافته خط فرمان
-q   --quiet
       حالت بی‌صدا، عدم چاپ هشدارها و خطاها
-v   --verbose
       حالت پرگو، چاپ جزئیات پردازش
-d   --debug
       حالت اشکال‌زدایی، چاپ اطلاعات اشکال‌زدایی
-ll  --log-level  [l]evel: string constant
       (fatal, error, warn, info, debug, trace)
       استفاده از سطح l برای گزارش‌گیر
-lc  --log-config  [f]ilename: string
       استفاده از فایل پیکربندی f برای گزارش‌گیر

LUT type:
  +Tm  --modality
         ساخت به عنوان Modality LUT
  +Tp  --presentation
         ساخت به عنوان Presentation LUT
  +Tv  --voi
         ساخت به عنوان VOI LUT (پیش‌فرض)
LUT placement:
  +Pa  --add
         افزودن به تبدیل موجود
         (پیش‌فرض برای --voi و فقط همراه با آن)
  +Pr  --replace
         جایگزینی تبدیل موجود
         (پیش‌فرض برای --modality و --presentation)
LUT content:
  +Cg  --gamma  [g]amma: float
         استفاده از مقدار گاما (پیش‌فرض: 1.0)
  +Cm  --map-file  [f]ilename: string
         خواندن داده‌های ورودی از فایل MAP
  +Ct  --text-file  [f]ilename: string
         خواندن داده‌های ورودی از فایل متنی
LUT options:
  +Og  --inverse-gsdf
         اعمال معکوس GSDF (چاپ presentation LUT در OD)
       --min-density  [v]alue: integer (0..65535, default: 20)
         تنظیم حداقل چگالی به v (بر حسب صدم OD)
       --max-density  [v]alue: integer (0..65535, default: 300)
         تنظیم حداکثر چگالی به v (بر حسب صدم OD)
  +Oi  --illumination  [v]alue: integer (0..65535, default: 2000)
         تنظیم روشنایی به v (بر حسب cd/m^2)
  +Or  --reflection  [v]alue: integer (0..65535, default: 10)
         تنظیم نور محیطی بازتاب‌شده به v (بر حسب cd/m^2)
LUT structure:
  -b   --bits  [n]umber: integer
         ساخت LUT با مقادیر n بیتی (8..16, default: 16)
  -e   --entries  [n]umber: integer
         ساخت LUT با n مدخل (1..65536, default: 256)
  -f   --first-mapped  [n]umber: integer
         اولین مقدار ورودی نگاشت‌شده (-31768..65535, default: 0)
  -r   --random  [n]umber: unsigned integer
         اعمال n جایگشت تصادفی روی LUT
  -rs  --random-seed  [n]umber: unsigned integer
         مقداردهی اولیه مولد اعداد تصادفی با n
         (پیش‌فرض: 0، برای نتایج تکرارپذیر)
  -o   --order  [n]umber: integer
         استفاده از الگوریتم برازش منحنی چندجمله‌ای با درجه n
         (0..99, default: 5)
  -E   --explanation  [n]ame: string
         توضیحات LUT (پیش‌فرض: ایجاد خودکار)
LUT data alignment:
  -a   --byte-align
         ساخت LUT هم‌تراز با بایت (byte-aligned)
         (پیش‌فرض و تنها همراه با مقادیر 8 بیتی)
  +a   --word-align
         ساخت LUT هم‌تراز با کلمه (word-aligned)
         (پیش‌فرض برای مقادیر 9-16 بیتی)
LUT data VR:
  +Dw  --data-ow
         نوشتن LUT Data به صورت OW (پیش‌فرض)
  +Du  --data-us
         نوشتن LUT Data به صورت US
  +Ds  --data-ss
         نوشتن LUT Data به صورت SS (پشتیبانی حداقلی)

+Fi  --dicom-input  [f]ilename: string
       خواندن مجموعه‌داده از فایل دایکام f
+Fo  --text-output  [f]ilename: string
       نوشتن داده‌های LUT در فایل متنی تب‌بندی‌شده f

لطفاً برای آگاهی از سایر محدودیت‌های ساختار جدول جستجو، استاندارد DICOM را بررسی کنید. به‌ویژه تعداد بیت‌ها به ازای هر مدخل جدول ممکن است در IODهای خاصی محدود شده باشد.

سطح خروجی گزارش‌گیری (logging) ابزارهای گوناگون خط فرمان و کتابخانه‌های زیرین توسط کاربر قابل تعیین است. به صورت پیش‌فرض، تنها خطاها و هشدارها در جریان خطای استاندارد (stderr) نوشته می‌شوند. با استفاده از گزینه --verbose پیام‌های اطلاع‌رسانی مانند جزئیات پردازش نیز گزارش می‌شوند. گزینه --debug می‌تواند برای دریافت جزئیات بیشتر از فعالیت‌های داخلی، مثلاً برای مقاصد اشکال‌زدایی، استفاده شود. سایر سطوح گزارش‌گیری را می‌توان با استفاده از گزینه --log-level انتخاب کرد. در حالت --quiet فقط خطاهای مهلک گزارش می‌شوند. در چنین رخدادهای خطای بسیار شدیدی، برنامه معمولاً متوقف خواهد شد. برای جزئیات بیشتر در مورد سطوح مختلف گزارش‌گیری، به مستندات ماژول "oflog" مراجعه کنید.

در صورتی که خروجی گزارش‌گیری باید در یک فایل (اختیاراً همراه با چرخش فایل ثبت وقایع)، در syslog (یونیکس) یا event log (ویندوز) نوشته شود، می‌توان از گزینه --log-config استفاده کرد. این فایل پیکربندی همچنین امکان هدایت پیام‌های خاص به یک جریان خروجی مشخص و فیلتر کردن پیام‌های خاص بر اساس ماژول یا برنامه‌ای که در آن ایجاد شده‌اند را فراهم می‌کند. یک نمونه فایل پیکربندی در <etcdir>/logger.cfg ارائه شده است.

تمام ابزارهای خط فرمان از نمادگذاری زیر برای پارامترها استفاده می‌کنند: کروشه‌ها مقادیر اختیاری (۰-۱) را در بر می‌گیرند، سه نقطه در انتها نشان‌دهنده مجاز بودن چندین مقدار (۱-n) است، و ترکیبی از هر دو به معنای ۰ تا n مقدار است.

گزینه‌های خط فرمان با علامت پیشوند '+' یا '-' از پارامترها متمایز می‌شوند. معمولاً ترتیب و موقعیت گزینه‌های خط فرمان دلخواه است (یعنی می‌توانند در هر جایی ظاهر شوند). با این حال، اگر گزینه‌ها مانعة‌الجمع باشند، گزینه‌ای که در انتهایی‌ترین سمت راست قرار دارد اعمال می‌شود. این رفتار با قواعد ارزیابی استاندارد در شل‌های متداول یونیکس مطابقت دارد.

علاوه بر این، یک یا چند فایل دستور را می‌توان با استفاده از نماد '@' به عنوان پیشوند نام فایل مشخص کرد (برای مثال @command.txt). چنین آرگومان دستوری پیش از هرگونه ارزیابی بیشتر با محتوای فایل متنی مربوطه جایگزین می‌شود (چندین فاصله سفید متوالی به عنوان یک جداکننده واحد در نظر گرفته می‌شوند مگر اینکه بین دو علامت نقل‌قول قرار گرفته باشند). لطفاً توجه داشته باشید که یک فایل دستور نمی‌تواند شامل فایل دستور دیگری باشد. این رویکرد ساده اما کارآمد به فرد اجازه می‌دهد ترکیب‌های متداول گزینه‌ها/پارامترها را خلاصه کند و از خط فرمان‌های طولانی و گیج‌کننده جلوگیری نماید (یک نمونه در فایل <datadir>/dumppat.txt ارائه شده است).

ابزار dcmmklut تلاش خواهد کرد فرهنگ‌های داده دایکام (DICOM data dictionaries) مشخص‌شده در متغیر محیطی DCMDICTPATH را بارگذاری کند. به صورت پیش‌فرض، یعنی اگر متغیر محیطی DCMDICTPATH تنظیم نشده باشد، فایل <datadir>/dicom.dic بارگذاری خواهد شد مگر اینکه فرهنگ داده درون برنامه تعبیه شده باشد (پیش‌فرض برای ویندوز).

رفتار پیش‌فرض باید ترجیح داده شود و از متغیر محیطی DCMDICTPATH تنها زمانی استفاده شود که فرهنگ‌های داده جایگزین مورد نیاز باشند. متغیر محیطی DCMDICTPATH قالبی مشابه با متغیر PATH در شل یونیکس دارد که در آن دو نقطه (":") ورودی‌ها را از یکدیگر جدا می‌کند. در سیستم‌های ویندوز، از نقطه ویرگول (";") به عنوان جداکننده استفاده می‌شود. کد فرهنگ داده تلاش خواهد کرد هر فایل مشخص‌شده در متغیر محیطی DCMDICTPATH را بارگذاری کند. عدم توانایی در بارگذاری هیچ فرهنگ داده‌ای، یک خطا محسوب می‌شود.

<datadir>/philips.lut - نمونه LUT در قالب متنی

حق نشر (C) 1998-2025 توسط OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.

Thu Jul 9 2026 18:43:40 Version 3.7.0