2017-05-25 3 views
1

supposons que nous avons deux photos rectifiés avec la position de pixel connue des caméras stéréo et nous voulons dessiner la carte de disparitéComment interpréter Disparités valeur

quel serait le pixel le plus proche si le pixel dans la photo de droite se déplace à la fois direction? Je sais que le point le plus éloigné est le point qui a la valeur minimale si nous faisons q.x -p.x (p est un pixel dans la photo de gauche) est donc la valeur maximale de ce qui est le plus proche?

Merci

Répondre

1

cartes Disparités sont généralement écrites avec des valeurs signées qui indiquent dans quelle direction le pixel se déplace d'une image à l'autre dans la paire stéréo. Par exemple si vous avez un pixel dans la vue gauche à l'emplacement < 100,250> et dans la vue de droite le pixel correspondant est à l'emplacement < 115,250> alors la carte de disparité pour la vue gauche à l'emplacement < 100,250> aurait une valeur de 15. La carte de disparité pour la vue de droite à l'emplacement < 115,250> aurait une valeur de -15.

Les cartes de disparité peuvent être des images multicanaux, généralement avec le décalage x dans le premier canal et le décalage y dans le deuxième canal. Si vous regardez des paires stéréo haute résolution avec beaucoup de disparité, vous ne pourrez peut-être pas adapter toutes les valeurs de disparité possibles dans une image 8 bits. Dans l'industrie cinématographique, la plupart des cartes de disparité sont stockées sous forme d'images en virgule flottante de 16 ou 32 bits.

Il n'existe pas de méthode standard de mise à l'échelle des disparités et elle est généralement désapprouvée car la disparité est censée décrire une propriété "physique/concrète/immuable/etc". Cependant, parfois c'est nécessaire. Par exemple, si vous souhaitez enregistrer la disparité d'une grande paire stéréo dans une image 8 bits, vous devrez mettre à l'échelle les valeurs pour les placer dans le conteneur 8 bits. Vous pouvez le faire de différentes façons. L'une des manières de mettre à l'échelle une carte de disparités consiste à prendre la plus grande valeur de disparité absolue et à diviser toutes les valeurs par un facteur qui réduira cette valeur à la valeur maximale de votre monde 8 bits signé (128). Cette méthode est facile à redimensionner à la gamme de disparité d'origine en utilisant un simple multiplicateur, mais peut évidemment conduire à une réduction des détails en raison de la réduction de l'étape créée par la division. Par exemple, si j'ai une image avec une plage de disparité de 50 à 200, j'ai 250 valeurs de disparité possibles. Je peux diviser toutes les valeurs par 200/128 = 1.5625. Cela me donne une fourchette de 32 à -128 ou 160 valeurs de disparité possibles. Lorsque je redimensionne ces valeurs en utilisant une multiplication, je reçois de nouveau 50 à -200, mais maintenant il n'y a que 160 valeurs de disparité possibles dans cette fourchette.

Une autre méthode utilisant la plage de disparité ci-dessus consiste simplement à décaler la plage. La plage totale est 250, notre conteneur 8 bits signé peut contenir 256 valeurs, donc nous soustrayons 250-128 = 72 de toutes les valeurs ce qui nous donne une nouvelle plage de 122 à -128. Cela nous permet de conserver toutes les étapes de disparité et d'obtenir l'image d'entrée exacte simplement en ajoutant notre facteur de décalage dans l'image. Inversement, si vous disposez d'une carte de disparités comprise entre -5 et 10. Vous pouvez étendre cette plage pour inclure des valeurs de disparité de sous-pixel. Donc, vous pouvez mettre à l'échelle 10 jusqu'à 128 et -5 jusqu'à -64. Cela donne une plage de valeurs plus large mais le nombre total de valeurs possibles changera d'une image à l'autre en fonction de la plage de disparité d'entrée. Le problème avec les méthodes de mise à l'échelle est qu'elles peuvent être à perte et chaque image enregistrée aura un facteur d'échelle/méthode qui doit être inversé. Si chaque image a un facteur d'échelle séparé, ce facteur doit être stocké avec l'image. Si chaque image a le même facteur d'échelle, il y aura une plus grande dégradation des données en raison de la réduction des valeurs possibles. C'est pourquoi il est généralement recommandé de stocker des cartes de disparités à des profondeurs de bits plus élevées pour garantir l'intégrité des données.

+0

Merci pour la réponse claire mais dans ce cas quand la valeur de la carte de disparité gauche est de 15 par exemple (supposons que c'est la valeur maximale possible) donc 15 représentent l'étiquette la plus éloignée de la caméra? – Raziel

+0

Les cartes de disparité ne traitent généralement pas des valeurs de disparité minimum et maximum. Ils ne signalent que la disparité pour chaque pixel. Il n'existe pas de norme pour la mise à l'échelle des cartes de disparités afin de remplir un certain nombre de valeurs. Je vais ajouter des détails sur la mise à l'échelle de ma réponse. – BHawk