.TH "dcmicmp" 1 "Thu Jul 9 2026 18:43:40" "Version 3.7.0" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH "نام (NAME)" dcmicmp \- مقایسه تصاویر DICOM و محاسبه معیارهای تفاوت .PP .SH "خلاصه دستور (SYNOPSIS)" .PP .PP .nf dcmicmp [options] dcmfile-in-1 dcmfile-in-2 .fi .PP .SH "توضیحات (DESCRIPTION)" .PP ابزار \fBdcmicmp\fP دو تصویر DICOM را می‌خواند؛ یک «تصویر مرجع» اصلی و یک «تصویر آزمون» پس‌پردازش‌شده که نوعی پردازش مانند فشرده‌سازی با اتلاف تصویر و به دنبال آن فشرده‌گشایی بر روی آن اعمال شده است\&. این ابزار مستلزم آن است که هر دو تصویر دارای تفکیک‌پذیری یکسان، تعداد فریم‌های یکسان و هر دو رنگی یا تک‌رنگ باشند\&. تصاویر فشرده‌شده پشتیبانی نمی‌شوند\&. .PP سپس ابزار \fBdcmicmp\fP هر دو تصویر را با یکدیگر مقایسه کرده و معیارهایی را که نشان‌دهنده میزان شباهت یا تفاوت آن‌ها است محاسبه و چاپ می‌کند: .PP .IP "\(bu" 2 حداکثر خطای مطلق (maximum absolute error) بیشترین اختلاف بین مقدار یک پیکسل در تصویر مرجع و مقدار پیکسل متناظر آن در تصویر آزمون است\&. .IP "\(bu" 2 میانگین خطای مطلق (MAE) میانگین اختلاف بین مقدار پیکسل اصلی و مقدار پیکسل تصویر آزمون است\&. .IP "\(bu" 2 جذر میانگین مربعات خطا (RMSE) از طریق جمع کردن مجذور تمام مقادیر اختلاف، تقسیم آن بر تعداد مقادیر جمع‌شده و سپس محاسبه جذر آن به دست می‌آید\&. .IP "\(bu" 2 نسبت بیشینه سیگنال به نویز (PSNR) تصویر مرجع را به عنوان سیگنال و تفاوت‌های بین تصویر مرجع و آزمون را به عنوان نویز در نظر می‌گیرد\&. مقدار PSNR برابر است با بیشینه توان سیگنال (یعنی حداکثر مقدار پیکسل در تصویر مرجع) تقسیم بر RMSE، که در مقیاس لگاریتمی بر حسب dB بیان می‌شود\&. .IP "\(bu" 2 نسبت سیگنال به نویز (SNR) نیز تصویر مرجع را به عنوان سیگنال و تفاوت‌های بین تصویر مرجع و آزمون را به عنوان نویز در نظر می‌گیرد\&. مقدار SNR برابر است با میانگین توان سیگنال تقسیم بر RMSE، که در مقیاس لگاریتمی بر حسب dB بیان می‌شود\&. .PP .PP تمام معیارها مطابق با تعاریف ارائه‌شده در کتاب «پردازش تصویر دیجیتال» نوشته R\&.C\&. Gonzalez و R\&.E\&. Woods، انتشارات Prentice Hall سال ۲۰۰۸ محاسبه می‌شوند\&. .SH "پارامترها (PARAMETERS)" .PP .PP .nf dcmfile-in-1 فایل تصویر مرجع DICOM برای مقایسه dcmfile-in-2 فایل تصویر آزمون DICOM برای مقایسه ("-" برای stdin) .fi .PP .SH "گزینه‌ها (OPTIONS)" .PP .SS "گزینه‌های عمومی (general options)" .PP .nf -h --help چاپ این متن راهنما و خروج --version چاپ اطلاعات نسخه و خروج --arguments چاپ آرگومان‌های بسط‌یافته خط فرمان -q --quiet حالت بی‌صدا، عدم چاپ هشدارها و خطاها -v --verbose حالت پرگو، چاپ جزئیات پردازش -d --debug حالت اشکال‌زدایی، چاپ اطلاعات اشکال‌زدایی -ll --log-level [l]evel: string constant (fatal, error, warn, info, debug, trace) استفاده از سطح l برای logger -lc --log-config [f]ilename: string استفاده از فایل پیکربندی f برای logger .fi .PP .SS "گزینه‌های ورودی (input options)" .PP .nf قالب فایل ورودی: +f --read-file خواندن قالب فایل یا مجموعه داده (پیش‌فرض) +fo --read-file-only فقط خواندن قالب فایل -f --read-dataset خواندن مجموعه داده بدون اطلاعات فراداده‌ای فایل سینتکس انتقال ورودی: -t= --read-xfer-auto استفاده از تشخیص خودکار TS (پیش‌فرض) -td --read-xfer-detect نادیده گرفتن TS مشخص‌شده در سرآیند فراداده فایل -te --read-xfer-little خواندن با TS از نوع explicit VR little endian -tb --read-xfer-big خواندن با TS از نوع explicit VR big endian -ti --read-xfer-implicit خواندن با TS از نوع implicit VR little endian .fi .PP.SS "گزینه‌های پردازش تصویر (image processing options)" .PP .nf تبدیل modality LUT: +M --use-modality استفاده از تبدیل modality LUT (پیش‌فرض) -M --no-modality نادیده‌گرفتن تبدیل modality LUT ذخیره‌شده تبدیل VOI LUT: -W --no-windowing بدون پنجره‌بندی VOI (پیش‌فرض) +Wi --use-window [n]umber: integer استفاده از n-امین پنجرهٔ VOI از فایل تصویر +Wl --use-voi-lut [n]umber: integer استفاده از n-امین جدول تبدیل (look up table) VOI از فایل تصویر +Wm --min-max-window محاسبهٔ پنجرهٔ VOI با استفاده از الگوریتم min-max به‌طور جداگانه روی هر دو تصویر +Wn --min-max-window-n محاسبهٔ پنجرهٔ VOI با استفاده از الگوریتم min-max به‌طور جداگانه روی هر دو تصویر، با نادیده‌گرفتن مقادیر حدی +Wr --min-max-ref محاسبهٔ پنجرهٔ VOI با استفاده از الگوریتم min-max و استفاده از همان پنجره برای تصویر آزمایشی +Wq --min-max-n-ref محاسبهٔ پنجرهٔ VOI با استفاده از الگوریتم min-max، با نادیده‌گرفتن مقادیر حدی و استفاده از همان پنجره برای تصویر آزمایشی +Ww --set-window [c]enter [w]idth: float محاسبهٔ پنجرهٔ VOI با استفاده از مرکز c و پهنای w +Wfl --linear-function تنظیم تابع VOI LUT روی LINEAR +Wfs --sigmoid-function تنظیم تابع VOI LUT روی SIGMOID تبدیل presentation LUT: +Pid --identity-shape تنظیم شکل presentation LUT روی IDENTITY +Piv --inverse-shape تنظیم شکل presentation LUT روی INVERSE +Pod --lin-od-shape تنظیم شکل presentation LUT روی LIN OD .fi .PP .SS "گزینه‌های معیارهای مقایسه تصویر (image comparison metrics options)" .PP .nf +ce --check-error [l]imit: integer بررسی این‌که آیا حداکثر خطای مطلق <= limit است # در صورتی که حداکثر خطای مطلق محاسبه‌شده بزرگ‌تر از حد تعیین‌شده باشد، # کد خروج EXITCODE_LIMIT_EXCEEDED_MAX_ERROR برگردانده می‌شود\&. +cm --check-mae [l]imit: float بررسی این‌که آیا میانگین خطای مطلق <= limit است # در صورتی که میانگین خطای مطلق محاسبه‌شده بزرگ‌تر از حد تعیین‌شده باشد، # کد خروج EXITCODE_LIMIT_EXCEEDED_MAE برگردانده می‌شود\&. +cr --check-rmse [l]imit: float بررسی این‌که آیا ریشهٔ میانگین مربعات خطا <= limit است # در صورتی که ریشهٔ میانگین مربعات خطای محاسبه‌شده بزرگ‌تر از حد تعیین‌شده باشد، # کد خروج EXITCODE_LIMIT_EXCEEDED_RMSE برگردانده می‌شود\&. +cp --check-psnr [l]imit: float بررسی این‌که آیا PSNR >= limit است # در صورتی که نسبت بیشینه سیگنال به نویز (PSNR) محاسبه‌شده کمتر از حد تعیین‌شده باشد، # کد خروج EXITCODE_LIMIT_EXCEEDED_PSNR برگردانده می‌شود # (برای PSNR، مقادیر بالاتر به معنای کیفیت بهتر تصویر است) +cs --check-snr [l]imit: float بررسی این‌که آیا SNR >= limit است # در صورتی که نسبت سیگنال به نویز محاسبه‌شده کمتر از حد تعیین‌شده باشد، # کد خروج EXITCODE_LIMIT_EXCEEDED_PSNR برگردانده می‌شود # (برای SNR، مقادیر بالاتر به معنای کیفیت بهتر تصویر است) .fi .PP.SS "گزینه‌های خروجی (output options)" .PP .nf +sd --save-diff [f]ilename: string نوشتن تصویر تفاضلی secondary capture # ایجاد یک تصویر Multiframe Secondary Capture که شامل یک تصویر تفاضلی بین # تصویر مرجع و آزمون است\&. برای تصاویر تک‌رنگ (monochrome)، یک فریم تفاضلی # به ازای هر فریم در تصویر مرجع ایجاد می‌شود\&. برای تصاویر رنگی، سه فریم # تک‌رنگ به ازای هر فریم در تصویر مرجع ایجاد می‌شود که متناظر با تفاوت‌ها در # صفحات رنگی قرمز، سبز و آبی هستند\&. تصویر تفاضلی بر اساس ویژگی‌های تصویر # مرجع، دارای BitsStored برابر با ۸ یا ۱۶ خواهد بود\&. +a --amplify [f]actor: float ضرب مقادیر پیکسل تصویر تفاضلی در f # این گزینه می‌تواند برای تقویت مقادیر مقیاس خاکستری (grayscale) در تصویر # تفاضلی از طریق ضرب هر مقدار در ضریب داده‌شده استفاده شود\&. به عنوان # روش جایگزین، ممکن است هنگام مصورسازی تصویر تفاضلی از یک پنجره DICOM VOI LUT # استفاده شود\&. .fi .PP .SH "نکات (NOTES)" .PP .SS "خط لوله نمایش مقیاس خاکستری (grayscale display pipeline)" تصاویر تک‌رنگ DICOM نیازمند اجرای یک خط لوله نمایش چندمرحله‌ای هستند تا مقادیر خام پیکسل به مقادیر موسوم به مقادیر ارائه (p-values) که به نمایشگر (احتمالاً کالیبره‌شده) ارسال می‌شوند تبدیل گردند\&. هنگام مقایسه شباهت تصاویر پیش و پس از پس‌پردازش، فعال‌سازی برخی از مراحل این خط لوله نمایش پیش از محاسبه تصویر تفاضلی و معیارها می‌تواند سودمند باشد\&. گزینه‌های پردازش تصویر به فراخواننده اجازه می‌دهند تبدیلات Modality LUT، VOI LUT و Presentation LUT را فعال یا غیرفعال کند\&. در هر صورت، تبدیل یکسانی بر روی هر دو تصویر اعمال می‌شود، اگرچه ممکن است با پارامترهای متفاوت باشد؛ برای مثال اگر «اولین پنجره VOI LUT» ذخیره‌شده در هر تصویر اعمال گردد\&. این امر با این فرض صورت می‌گیرد که الگوریتم پس‌پردازش (مانند الگوریتم فشرده‌سازی) مقادیر چنین پنجره‌هایی را در حین فشرده‌سازی به‌گونه‌ای تطبیق داده است که نمایش تصویر پس از اعمال پنجره تا حد ممکن به مرجع نزدیک باشد\&. برای تصاویر با بیش از ۸ بیت در هر نمونه (bits/sample) ممکن است دانستن اینکه کدام تبدیل VOI LUT توسط کاربر هنگام مشاهده تصویر اعمال می‌شود اهمیت داشته باشد، زیرا این موضوع می‌تواند بر کیفیت ادراک‌شده تصویر اثر بگذارد\&. بنابراین، پارامترهای مطلق Window را نیز می‌توان با گزینه \fB\-\-set\-window\fP مشخص کرد که متعاقباً بر روی هر دو تصویر اعمال خواهند شد\&. .SS "مناسب بودن تصاویر برای اهداف تشخیصی (suitability of images for diagnostic purposes)" کاربر همچنین باید توجه داشته باشد که معیارهای محاسبه‌شده توسط این ابزار نمی‌توانند مناسب بودن تصویر فشرده‌شده با اتلاف (lossy) را برای اهداف تشخیصی پیش‌بینی یا برآورد کنند\&. برای این منظور، پردازش تصویر بسیار پیچیده‌تر و درک محتوای تصویر (مانند اندام یا عضو بدن) مورد نیاز خواهد بود\&. معیارهای محاسبه‌شده صرفاً تخمینی از میزان اعوجاج ناشی از پس‌پردازش ارائه می‌دهند \- نه بیشتر و نه کمتر\&. .SH "ساختارهای انتقال (TRANSFER SYNTAXES)" .PP \fBdcmicmp\fP از ساختارهای انتقال (transfer syntaxes) زیر برای ورودی پشتیبانی می‌کند: .PP .PP .nf LittleEndianImplicitTransferSyntax 1\&.2\&.840\&.10008\&.1\&.2 LittleEndianExplicitTransferSyntax 1\&.2\&.840\&.10008\&.1\&.2\&.1 DeflatedExplicitVRLittleEndianTransferSyntax 1\&.2\&.840\&.10008\&.1\&.2\&.1\&.99 (*) BigEndianExplicitTransferSyntax 1\&.2\&.840\&.10008\&.1\&.2\&.2 .fi .PP .PP فایل تصویر تفاضلی همواره با ساختار Little Endian Implicit Transfer Syntax نوشته می‌شود\&. .PP (*) در صورتی که با فعال بودن پشتیبانی از zlib کامپایل شده باشد .SH "گزارش‌گیری (LOGGING)" .PP سطح خروجی گزارش‌گیری (logging) ابزارهای خط فرمان مختلف و کتابخانه‌های زیربنایی می‌تواند توسط کاربر مشخص شود\&. به طور پیش‌فرض، تنها خطاها و هشدارها در جریان خطای استاندارد (standard error) نوشته می‌شوند\&. با استفاده از گزینه \fI\-\-verbose\fP پیام‌های اطلاع‌رسانی مانند جزئیات پردازش نیز گزارش می‌شوند\&. گزینه \fI\-\-debug\fP می‌تواند برای دریافت جزئیات بیشتر درباره فعالیت‌های داخلی، به عنوان مثال برای اهداف اشکال‌زدایی، به کار رود\&. سایر سطوح گزارش‌گیری را می‌توان با استفاده از گزینه \fI\-\-log\-level\fP انتخاب کرد\&. در حالت \fI\-\-quiet\fP فقط خطاهای مهلک گزارش می‌شوند\&. در چنین رخدادهای خطای بسیار شدیدی، برنامه معمولاً خاتمه می‌یابد\&. برای جزئیات بیشتر در مورد سطوح مختلف گزارش‌گیری، به مستندات ماژول «oflog» مراجعه کنید\&. .PP در صورتی که خروجی گزارش‌گیری باید در یک فایل نوشته شود (اختیاراً همراه با چرخش فایل گزارش یا همان logfile rotation)، یا به syslog (یونیکس) یا event log (ویندوز) ارسال گردد، می‌توان از گزینه \fI\-\-log\-config\fP استفاده کرد\&. این فایل پیکربندی همچنین امکان هدایت پیام‌های مشخصی به یک جریان خروجی معین و فیلتر کردن پیام‌ها بر اساس ماژول یا برنامه‌ای که در آن ایجاد شده‌اند را فراهم می‌کند\&. یک نمونه فایل پیکربندی در مسیر \fI/logger\&.cfg\fP ارائه شده است\&. .SH "خط فرمان (COMMAND LINE)" .PP تمامی ابزارهای خط فرمان از شیوه نمادگذاری زیر برای پارامترها استفاده می‌کنند: کروشه‌ها مقادیر اختیاری (۰\-۱) را در بر می‌گیرند، سه نقطه در انتها نشان‌دهنده مجاز بودن چندین مقدار (۱\-n) است، و ترکیبی از هر دو به معنای ۰ تا n مقدار می‌باشد\&. .PP گزینه‌های خط فرمان به ترتیب با یک علامت «+» یا «\-» پیشرو از پارامترها متمایز می‌شوند\&. معمولاً ترتیب و موقعیت گزینه‌های خط فرمان اختیاری است (یعنی می‌توانند در هر جایی ظاهر شوند)\&. با این حال، اگر گزینه‌ها ناسازگار با یکدیگر (mutually exclusive) باشند، آخرین نمونه در سمت راست اعمال می‌شود\&. این رفتار با قواعد ارزیابی استاندارد در شل‌های متداول یونیکس سازگار است\&. .PP علاوه بر این، یک یا چند فایل فرمان را می‌توان با استفاده از علامت «@» به عنوان پیشوند نام فایل مشخص کرد (مانند \fI@command\&.txt\fP)\&. چنین آرگومان فرمانی پیش از هرگونه پردازش بیشتر، با محتوای فایل متنی متناظر جایگزین می‌شود (فاصله‌های خالی متعدد به عنوان یک جداکننده واحد در نظر گرفته می‌شوند مگر اینکه بین دو علامت نقل‌قول قرار گرفته باشند)\&. لطفاً توجه داشته باشید که یک فایل فرمان نمی‌تواند حاوی فایل فرمان دیگری باشد\&. .SH "کدهای خروج (EXIT CODES)" .PP ابزار \fBdcmicmp\fP هنگام خاتمه از کدهای خروج زیر استفاده می‌کند\&. این به کاربر امکان می‌دهد تا دلیل پایان کار برنامه را بررسی کند\&. .SS "عمومی (general)" .PP .nf EXITCODE_NO_ERROR 0 EXITCODE_COMMANDLINE_SYNTAX_ERROR 1 .fi .PP .SS "خطاهای فایل ورودی/خروجی (input/output file errors)" .PP .nf EXITCODE_INVALID_INPUT_FILE 22 EXITCODE_CANNOT_WRITE_OUTPUT_FILE 40 .fi .PP.SS "خطاهای پردازش تصویر" .PP .nf EXITCODE_INITIALIZE_DIFF_IMAGE 80 EXITCODE_DISPLAY_PIPELINE 81 EXITCODE_IMAGE_COMPARISON 82 .fi .PP .SS "کدهای خطای فراتر رفتن از حد مجاز" .PP .nf EXITCODE_LIMIT_EXCEEDED_MAX_ERROR 90 EXITCODE_LIMIT_EXCEEDED_MAE 91 EXITCODE_LIMIT_EXCEEDED_RMSE 92 EXITCODE_LIMIT_EXCEEDED_PSNR 93 EXITCODE_LIMIT_EXCEEDED_SNR 94 .fi .PP .SH "محیط (ENVIRONMENT)" .PP ابزار \fBdcmicmp\fP تلاش خواهد کرد دیکشنری‌های داده DICOM مشخص‌شده در متغیر محیطی \fIDCMDICTPATH\fP را بارگذاری کند\&. به‌طور پیش‌فرض، یعنی در صورتی که متغیر محیطی \fIDCMDICTPATH\fP مقداردهی نشده باشد، فایل \fI/dicom\&.dic\fP بارگذاری خواهد شد، مگر اینکه دیکشنری درون خود برنامه تعبیه شده باشد (پیش‌فرض در ویندوز)\&. .PP رفتار پیش‌فرض ارجح است و متغیر محیطی \fIDCMDICTPATH\fP تنها باید در صورتی استفاده شود که به دیکشنری‌های داده جایگزین نیاز باشد\&. ساختار متغیر محیطی \fIDCMDICTPATH\fP مانند متغیر \fIPATH\fP در شل یونیکس است و از دو‌نقطه (":") برای جداسازی ورودی‌ها استفاده می‌کند\&. در سیستم‌های ویندوز، از نقطه\-ویرگول (";") به‌عنوان جداکننده استفاده می‌شود\&. کد دیکشنری داده تلاش خواهد کرد هر فایل مشخص‌شده در متغیر محیطی \fIDCMDICTPATH\fP را بارگذاری کند\&. بارگذاری نشدن هیچ‌یک از دیکشنری‌های داده خطا محسوب می‌شود\&. .SH "همچنین ببینید (SEE ALSO)" .PP \fBdcm2pnm\fP(1) .SH "کپی‌رایت و تکثیر (COPYRIGHT)" .PP حق نشر (C) 2018-2025 توسط OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&.