2016-05-23 17 views
0

Ich möchte die adaptive bilineare Interpolationsmethode für Bild-Upsampling unter in this paper implementieren. Aber ich stehe auf einer sehr grundlegenden Frage fest.Wie wird adaptive bilineare Interpolation durchgeführt?

imresize() in Matlab führt bilineare Interpolation by taking a weighted average of pixels in the nearest 2x2 neighborhood.

Ich möchte wissen, wie funktioniert Matlab für die Randpixel dieses 2x2 Nachbarschaft bestimmen? Ich möchte wirklich wissen, wie ich die Nachbarschaft für die Grenzpixel in dem angehängten Papier bestimmen soll, da jede Grenze keine Nachbarschaft in mindestens einer Richtung haben wird, zum Beispiel die oberste Reihe wird keine haben Zeile zum Bestimmen einer vertikalen oberen Maske, die Spalte ganz links hat keine Spalte zum Bestimmen irgendeiner horizontalen Maske und so weiter.

Ich gab das Matlab-Beispiel, um eine Intuition darüber zu bekommen, wie Grenzfälle durch Sprachen in solchen Algorithmen gelöst werden.

+0

Warum denken Sie, dass es irgendwelche Grenzen gibt? Ich vermute, dass zum Beispiel die obere linke Ecke des interpolierten Bildes eine Interpolation der Pixel "(1,1), (1,2), (2,1) und (2,2)" ist. Mit anderen Worten, Ihr anfängliches Bild hat die Größe "NxN", Ihr interpoliertes Bild hat die Größe "N-1xN-1" – BillBokeey

Antwort

0

Die "2x2" Nachbarschaft, die Sie erwähnt haben, sind eigentlich die Intensität an den Ecken. Sie interpolieren also innerhalb dieser 2x2 Intensitätswerte.

Um am besten zu verstehen, versuchen Sie Folgendes tun, und dann werden Sie die Ausgabe sehen:

I=[1 2; 100 200] 
imresize(I,2, 'bilinear') 

Beachten Sie, dass für ‚bilinear‘ Interpolation der vier Ecken der gleichen, im Gegensatz zu dem Standard ‚bicubic‘ sind. Ich hoffe, das hilft.

Verwandte Themen