J'ai travaillé avec divers algorithmes d'interpolation, y compris les interpolations basées sur linéaire, cubique (et bilinéaire et bicubique), d'autres bezier (et nurbs, etc.), l'interpolation lagrange et quelques autres, mais je n'ai pas été en mesure de trouver des informations de base qui expliquent ce qu'est un suréchantillonnage bilatéral.
J'ai pu trouver des informations sur le suréchantillonnage bilatéral conjoint qui, autant que je sache, interpole plusieurs éléments de données en parallèle, en utilisant des conseils de chacun pour aider l'autre à mieux interpoler, mais j'ai du mal à séparer les informations de BU et JBU.
Quelqu'un peut-il expliquer les idées de base sur ce qu'est le suréchantillonnage bilatéral?
image-processing
interpolation
image
Alan Wolfe
la source
la source
Réponses:
Il semble que vous demandiez deux choses. Je ne peux pas vraiment parler techniquement de JBU, mais je peux donner un aperçu des concepts nécessaires et du filtrage bilatéral en général. Vous aurez probablement besoin de trouver plus de détails vous-même, mais cela devrait donner une structure cohérente pour commencer.
Correction des "images"
De nombreuses personnes qui traitent des images considèrent le filtrage comme quelque chose à faire comme un post-processus ou comme un moyen de mettre à l'échelle les images. La perspective du mathématicien est plus précise, descriptive et complexe.
Lorsque vous avez un fichier image, vous n'avez pas de vraie image. Vous avez des "valeurs" de pixels, qui ne sont strictement valables qu'au centre des pixels. En gros, chaque pixel a une zone qui prend cette couleur. Mathématiquement, ce que vous faites est d'utiliser un filtre de reconstruction du plus proche voisin pour reconstruire la vraie image à partir des valeurs des pixels. Ainsi , une « image » est vraiment un ensemble d'échantillons et d' un filtre de reconstruction, typiquement voisin le plus proche .
Rééchantillonnage
Lorsque vous augmentez l'échelle d'une image, ce que vous faites réellement, c'est le rééchantillonnage . Comment est-ce que tu fais ça? Vous prenez votre signal et vous en générez un nouvel ensemble d'échantillons. Mais pour une image, je viens de dire que nous n'avons l'image réelle; nous devons d'abord le reconstruire. Ainsi, une procédure de rééchantillonnage typique ressemble à ceci:
Le point clé est que le filtre de reconstruction utilisé est le "filtre" utilisé pour le rééchantillonnage. Par exemple, un "suréchantillonnage bicubique" utiliserait un filtre de reconstruction bicubique.
Il s'avère que si vous utilisez une fonction sinc pour le filtre de reconstruction et que vous ne réduisez pas l'image, vous obtenez (théoriquement) la même image. En fait, si vous mettez à l'échelle l'image puis la redimensionnez à nouveau, vous obtiendrez la même réponse. Ce n'est généralement pas vrai pour tout autre filtre.
La plupart des filtres se rapprochent plus ou moins d'un filtre sinc. Les écarts entraînent une perte d'image.
Filtration
Si vous utilisez le même taux d'échantillonnage avant / après, vous faites quelque chose appelé "filtrage". Formellement, le filtrage consiste à rééchantillonner sans modifier la fréquence d'échantillonnage. Le filtrage est un cas particulier de rééchantillonnage.
Le seul but possible de le filtrer pour jeter des informations (par exemple un gaussien) ou éventuellement aussi pour déformer ou ajouter des informations parasites (par exemple un Sobel).
Filtrage bilatéral
Vous pouvez utiliser de nombreux filtres différents pour le filtrage. Le filtrage bilatéral en fait partie. Je ne pense pas que ce soit considéré comme l'état de l'art à quelque fin que ce soit (bien que je ne sache pas ce que c'est; probablement quelque chose de nouveau d'apprentissage automatique que j'attends).
Un filtre bilatéral est un filtre non linéaire, ce qui signifie qu'il n'a pas une belle représentation de Fourier. Conceptuellement, c'est comme un gaussien, mais les couleurs sources elles-mêmes prennent également en compte la «distance» d'un pixel par rapport aux autres. Cela a tendance à lisser les zones planes tout en préservant les bords.
Augmentation bilatérale
À présent, j'espère que vous voyez où je veux en venir: tout filtre que vous pouvez utiliser pour le filtrage, vous pouvez l'utiliser pour la mise à l'échelle ou la réduction d'échelle, qui sont vraiment la même chose (car tout cela est un rééchantillonnage).
Si vous avez implémenté un filtre bilatéral, vous devriez pouvoir implémenter plutôt simplement un rééchantillonneur de filtre bilatéral - tout comme, si vous avez implémenté un filtre gaussien, vous devriez pouvoir implémenter un rééchantillonneur de filtre gaussien.
La seule difficulté peut être les définitions. Malheureusement, la distinction entre filtrage et rééchantillonnage est systématiquement brouillée à une inexistence occasionnelle dans la littérature sur le traitement d'image. Pour mettre en œuvre un filtre de type bilatéral, je compterais fortement sur ses similitudes avec le rééchantillonnage gaussien. IIRC (je n'ai pas lu l'article depuis des années) le filtrage bilatéral se pose en termes de pixels, pas d'échantillons.
la source
Cela n'explore probablement pas toute la profondeur du terme, mais la première chose qui me vient à l'esprit lorsque j'entends un "suréchantillonnage bilatéral" est le mélange sensible à la profondeur d'images basse résolution avec des images haute résolution; par exemple, lorsque vous effectuez le rendu de la géométrie alpha dans un tampon à demi-résolution (pour des économies de performances), puis que vous la composez à nouveau sur la cible de rendu principale. Angelo Pesce a écrit un article qui l'explique bien.
la source