خلاصه

Lens Distort TOP اعوجاج لنز را با استفاده از مدل Brown-Conrady روی تصویر اعمال یا حذف می‌کند. از این نود می‌توان برای اصلاح تصاویر دوربین‌های فیزیکی، اعمال اعوجاج روی رندر برای استفاده در واقعیت افزوده (AR)، یا به عنوان یک افکت بصری استفاده کرد.

الگوریتم اعوجاج در Lens Distort TOP شامل سه بخش است: اعوجاج شعاعی (Radial)، اعوجاج مماسی (Tangential) و ماتریس دوربین.


اعوجاج شعاعی (Radial Distortion)

اعوجاج شعاعی پیکسل‌ها را نسبت به فاصله‌شان از مرکز تصویر (تعریف‌شده توسط Optical Center) جابه‌جا می‌کند. این اعوجاج توسط پارامترهای k1، k2 و k3 کنترل می‌شود؛ k1 بیشترین تأثیر را دارد و k3 کمترین.

  • مقادیر مثبت k باعث ایجاد افکت بشکه‌ای یا فیش‌آی (Fisheye) می‌شوند، انگار تصویر روی سطح یک کره پیچیده شده.

  • مقادیر منفی k تصویر را به سمت داخل خم می‌کنند و افکت بالشتی (Pillow) یا پین‌کوشن (Pincushion) ایجاد می‌کنند.

معادلات اعوجاج شعاعی:

x_distorted = x * (1 + k1 * r² + k2 * r⁴ + k3 * r⁶)
y_distorted = y * (1 + k1 * r² + k2 * r⁴ + k3 * r⁶)

که در آن:
r = فاصله از مرکز


اعوجاج مماسی (Tangential Distortion)

اعوجاج مماسی پیکسل‌ها را طوری جابه‌جا می‌کند که انگار سطح تصویر کمی نسبت به دوربین زاویه دارد. p1 و p2 این اعوجاج را کنترل می‌کنند:

  • p1 تصویر را به بالا/پایین کج می‌کند.

  • p2 تصویر را به چپ/راست متمایل می‌کند.

معادلات اعوجاج مماسی:

x_distorted = x + (2 * p1 * x * y + p2 * (r² + 2x²))
y_distorted = y + (p1 * (r² + 2y²) + 2 * p2 * x * y)


ماتریس دوربین (Camera Matrix)

این ماتریس توسط پارامترهای Optical Center و Focal Length مشخص می‌شود و قبل از اعمال اعوجاج، موقعیت پیکسل‌ها را تبدیل می‌کند.

ماتریس دوربین به شکل زیر است:

fx 0 cx
0 fy cy
0 0 1

  • cx و cy ← مرکز اپتیک

  • fx و fy ← فاصلهٔ کانونی

ارزش‌های اعوجاج لنز را می‌توان با OpenCV Calibration یا ابزارهای اختصاصی دوربین‌ها (مثل kinectazureTOP) به دست آورد.


نمونه‌های بصری

  • اعوجاج شعاعی فیش‌آی، هنگامی که k مثبت است

  • اعوجاج پین‌کوشن، وقتی k منفی است

  • اعوجاج مماسی با p1 منفی

  • اعوجاج مماسی با p2 منفی


برگه Layout

این بخش کنترل می‌کند که تصویر اعوجاج‌یافته یا اصلاح‌شده چگونه داخل فریم خروجی قرار گیرد.

این ویژگی‌ها برای:

  • جلوگیری از خروج تصویر از فریم

  • حفظ رزولوشن ورودی

  • ثابت نگه‌داشتن ابعاد خروجی هنگام تغییر اعوجاج
    مفید هستند.

مثال:

  • اگر Post Transform روی Optimal باشد و مقدار Optimal Alpha = 1،
    کل تصویر ورودی در فریم خروجی حفظ می‌شود.

  • اگر Layout روی Native Resolution باشد
    رزولوشن خروجی طوری تنظیم می‌شود که هیچ بخشی از تصویر حذف نشود.

  • با وصل کردن Info CHOP می‌توان قسمت ROI را استخراج کرد و فقط بخش اصلی تصویر را برش داد.

نکته: این TOP از تکسچرهای 3D و آرایه‌های 2D پشتیبانی می‌کند.


پارامترها – صفحه LensDistort

Invert Distortion

اعمال معکوس اعوجاج لنز.
این گزینه معمولاً اعوجاج ایجادشده توسط یک Lens Distort دیگر (با همان تنظیمات و بدون Inverse) را تا حد زیادی خنثی می‌کند.

توجه:

  • الگوریتم یک معکوس دقیق ریاضی ندارد، بنابراین نتیجه ۱۰۰٪ مانند تصویر اصلی نیست.

  • k3 در حالت معکوس استفاده نمی‌شود.

  • هر چیزی که خارج از فریم اصلی بوده، بازیابی نمی‌شود.


K1، K2، K3

سه ثابت اعوجاج شعاعی.

  • k1 ← بیشترین تأثیر

  • k3 ← کمترین تأثیر

مثبت: فیش‌آی
منفی: پین‌کوشن


P1، P2

ثوابت اعوجاج مماسی.

  • p1 تصویر را عمودی می‌چرخاند

  • p2 تصویر را افقی می‌چرخاند


Optical Center

مرکز اعوجاج در تصویر.

  • می‌تواند پیکسلی باشد

  • یا نرمال‌شده (۰ تا ۱)

  • یا نسبت به مرکز تصویر تعریف شود.


Focal Lengths (Fx, Fy)

مقادیر فاصله کانونی ماتریس دوربین.

  • می‌تواند پیکسلی تعریف شود

  • یا نرمال‌شده برای سیستم‌های مبتنی بر میلی‌متر یا مقیاس‌های فیزیکی.


پارامترها – صفحه Layout

Layout

چیدمان تصویر در خروجی را کنترل می‌کند.

Extend Mode

تعیین می‌کند خارج از محدوده تصویر چه مقداری نمایش داده شود.

Optimal Alpha

مشابه مقدار Alpha در تابع getOptimalNewCameraMatrix در OpenCV.

  • مقدار 0 ← فقط ROI

  • مقدار 1 ← کل تصویر ورودی حفظ می‌شود

Post Transform

اعمال یک تبدیل اضافه پس از اعمال اعوجاج.

New Center / New Focal Length

مرکز و فاصله کانونی جدید برای تنظیم جایگاه و مقیاس تصویر در خروجی.

Center Offset

جابجایی تصویر اعوجاج‌یافته روی فریم خروجی.

Scale

مقیاس‌دهی پس از اعمال اعوجاج.

Cropping

تنظیم نحوهٔ برش تصویر خروجی.

Custom Region

برش سفارشی با مختصات:
Left, Bottom, Right, Top
به صورت پیکسلی یا نرمال‌شده.


ورودی‌های اپراتور

Lens Distort TOP یک ورودی تصویری می‌گیرد.


Info CHOP

اطلاعات ویژه این TOP

ROI، ماتریس‌ها و جزئیات اعوجاج.

اطلاعات مشترک TOP

  • رزولوشن

  • نسبت تصویر

  • عمق

  • میزان حافظه GPU

اطلاعات مشترک اپراتورها

  • تعداد cook

  • زمان cook

  • هشدارها

  • خطاها