Кіріспе

2D торда функцияларды интерполяциялау әдісі. Математикада билинейлік интерполяция – екі айнымалының (мысалы, x және y) функцияларын қайталанатын сызықтық интерполяция арқылы интерполяциялау әдісі. Ол көбінесе 2D тікбұрышты торда алынған функцияларға қолданылады, бірақ кез келген дөңгес төртбұрыштардың (квадраттардың) төбелерінде анықталған функцияларға да қолданылуы мүмкін. Билинейлік интерполяция алдымен бір бағытта, содан кейін екінші бағытта сызықтық интерполяция қолдану арқылы жүзеге асырылады. Әрбір қадамда алынған мәндер мен орналасу бойынша сызықтық болғанымен, жалпы интерполяция сызықтық емес, ал үлгі орнына қатысты квадраттық болып табылады. Билинейлік интерполяция – компьютерлік көру және бейне өңдеудегі негізгі қайта үлгілеу техникаларының бірі, оны билинейлік сүзгілеу немесе билинейлік текстуралық бейнелеу деп те атайды.

Есептеу

Делік, біз белгісіз функция f-тің (x, y) нүктесіндегі мәнін табуды қалаймыз. Біз f-тің төрт нүктедегі мәнін білеміз деп есептейміз: Q11 = (x1, y1), Q12 = (x1, y2), Q21 = (x2, y1) және Q22 = (x2, y2).

Қасиеттері

Атауынан көрініп тұрғандай, билинеарлық интерполянт сызықтық емес; бірақ ол x немесе y бағытына параллель түзулер бойымен сызықтық (яғни аффиндік), немесе x немесе y тұрақты болғанда сызықтық болады. Кез келген басқа түзу сызық бойынша интерполянт квадраттық болады. Интерполяция (x және y) координаталары бойынша сызықтық болмаса да, жоғарыдағы (матрицалық) теңдеулерде көрсетілгендей, белгілі бір нүктеде интерполяция мәндері бойынша сызықтық болып табылады. Билинеарлық интерполяцияның нәтижесі, қандай осьтің бірінші және қандай осьтің екінші интерполяцияланғанына тәуелсіз. Егер біз алдымен y бағытында сызықтық интерполяцияны, содан кейін x бағытында жүргізсек, нәтижедегі жуықтау бірдей болар еді. Интерполянт – билинеарлық полином, ол сонымен қатар Лаплас теңдеуін қанағаттандыратын гармоникалық функция. Оның графигі – билинеарлық Безиер бетінің бөлігі.

Кері және жалпылау

Жалпы, интерполянт кез келген мәнді (төбелер мәндерінің дөңес қабығында) шексіз көп нүктеде (гипербола тармақтарын құрайтын) қабылдайды, сондықтан интерполяция кері емес. Дегенмен, егер билинейрлік интерполяция екі функцияға бір мезгілде қолданылса, мысалы, векторлық өрісті интерполяциялау кезінде, онда интерполяция кері болады (белгілі бір шарттарда). Атап айтқанда, бұл керіні кез келген дөңес төртбұрыштың ішіндегі нүктенің "бірлік квадрат координаттарын" табу үшін пайдалануға болады (төртбұрыштың координаттарын бірлік квадратқа билинейрлік интерполяцияланған векторлық өріс ретінде қарастыру арқылы). Осы процедураны пайдаланып, билинейрлік интерполяцияны кез келген дөңес төртбұрышқа кеңейтуге болады, бірақ егер ол параллелограмм болмаса, есептеулер айтарлықтай күрделенеді. Төртбұрыштар арасындағы осындай байланыс билинейрлік түрлендіру, билинейрлік деформация немесе билинейрлік бұрмалау деп аталады. Сондай-ақ, төртбұрыш пен бірлік квадрат арасындағы проекциялық бейнелеуді қолдануға болады, бірақ нәтижесіндегі интерполянт билинейрлік болмайды. Егер төртбұрыш параллелограмм болса, онда бірлік квадратқа сызықтық бейнелеу болады және жалпылау оңай болады. Билинейрлік интерполяцияның үш өлшемге кеңейтілуі трилинейрлік интерполяция деп аталады. Бірлік квадрат бойынша параметрленген билинейрлік интерполяцияланған векторлық өріс болсын. Интерполяцияны кері қайтару үшін екі билинейрлік полиномдық теңдеулер жүйесін шешу қажет: мұнда, мұқият таңдалған векторлармен жүйедегі 2D векторлық көбейтіндісін (Грассман көбейтіндісін қараңыз) қолдану арқылы терминдерді жоюға болады: бұл келесідей кеңейеді: Квадраттық теңдеулерді квадраттық формула арқылы шешуге болады. Бізде эквивалентті детерминанттар мен шешімдер бар (қарсы таңбалар сызықтық байланыс арқылы сақталады). жағдайларында немесе жеке қарастырылуы тиіс. Дұрыс шарттар орындалса, екі шешімнің бірі бірлік квадраттың ішінде болуы керек.

Суреттерді өңдеуде қолдану

Компьютерлік көру және кескін өңдеуде, билинейрлік интерполяция суреттер мен текстураларды қайта үлгілеу үшін қолданылады. Алгоритм экран пикселінің орнын текстуралық картадағы сәйкес нүктеге бейімдеу үшін пайдаланылады. Төрт жақын текселдің қасиеттерінің (түс, мөлдірлік және т.б.) салмақты орташасы есептеліп, экран пикселіне қолданылады. Бұл процесс текстураланатын нысанды құрайтын әрбір пиксел үшін қайталанады. Суретті үлкейту қажет болғанда, бастапқы суреттің әрбір пикселі масштаб коэффициентіне сәйкес белгілі бір бағытта жылжуы керек. Дегенмен, суретті бүтін емес масштаб коэффициентімен үлкейту кезінде, тиісті пикселдік мәндері тағайындалмаған пикселдер (яғни, бос орындар) пайда болады. Мұндай жағдайда, осы бос орындарға тиісті RGB немесе сұр түстік мәндер тағайындалуы керек, нәтижесінде шығыс кескінінде мәні жоқ пикселдер болмауы тиіс. Билинейрлік интерполяция пикселдерді дәл сәйкестендіру арқылы суретті толық трансформациялау мүмкін болмайтын жағдайларда қолданылады, бұл пикселдерге тиісті интенсивтілік мәндерін есептеуге және тағайындауға мүмкіндік береді. Ең жақын көрші интерполяциясы және бикубтық интерполяция сияқты басқа интерполяция әдістерінен айырмашылығы, билинейрлік интерполяция берілген пикселден диагональ бағыттарында орналасқан 4 жақын пикселдің мәндерін ғана пайдаланады, осы пикселдің тиісті түс интенсивтілік мәндерін анықтау үшін. Билинейрлік интерполяция белгісіз пикселдің есептелген орнын қоршап тұрған белгілі пикселдік мәндердің ең жақын 2 × 2 аймағын қарастырады. Содан кейін, соңғы интерполяцияланған мәнді алу үшін осы 4 пикселдің салмақты орташасы есептеледі.