Comment trouverais-tu la hauteur des objets donnés à une image?
Heyguys.. Ce n'est pas exactement une programmation à la question exactement. Je veux juste savoir quelle est votre approche serait d'un problème commun dans le traitement Numérique de l'image.
Permet de dire que vous avez une image de quelques arbres en format jpg. Comment feriez-vous pour trouver les hauteurs de chacun de ces arbres. La photo est la seule entrée que vous avez.
Je veux savoir les démarches que vous n'avez pas de code. Donc, ce n'est pas grave si vos réponses sont vagues, ou non DIP-ish.
Petite correction :
La hauteur n'a pas besoin d'être à la hauteur de l'arbre. La hauteur peut être pris à n'importe quelle échelle. Mais doit être conforme à tous les objets dans l'image.
source d'informationauteur Laz
Vous devez vous connecter pour publier un commentaire.
Oui c'est possible. Ce que vous décrivez a toute une industrie autour d'elle, appelée Photogrammétrie
Il y a un juste montant de la vision par ordinateur la recherche dans ce domaine. En supposant que vous ne connaissez pas la caméra contraintes, vous aurez à faire des hypothèses sur la scène et la caméra pour déterminer les hauteurs allant jusqu'à un facteur d'échelle. Notez que sans caméra de contraintes ou d'une hauteur de référence dans l'image, il est impossible de faire la différence entre un grand arbre photographié à partir d'une distance ou d'un petit arbre photographié de près. Un excellent point de départ est la Vue Unique De La Métrologie travail par Criminisi.
Il est simple de trouver la taille d'un objet à partir d'images à l'aide de la Photogrammétrie.
La photogrammétrie est la science de la prise de mesures à partir de photographies.
Pour cela nous avons besoin de savoir deux choses,
Voici les étapes:
Calibrer la Caméra
Utiliser openCV pour calibrer l'appareil.Vous pouvez utiliser le OpenCV calibrate.py outil de et le motif de l'Échiquier PNG prévues dans le code source pour générer un étalonnage de la matrice. Etalonnage de l'appareil photo est fait pour trouver les paramètres de la caméra. J'ai pris une dizaine de photos de l'échiquier des photos sous plusieurs angles, comme j'ai pu avec ma webcam (pour étalonner ma webcam). Pour plus de détails, consultez le openCV calibrage de la caméra.
Nous aurons f_x,f_y,c_x,c_y de l'étalonnage de la matrice.
De vérifier les détails des photos que vous avez pris, vous trouverez la résolution native de la photos(heightXwidth) et dans leur Les en-têtes EXIF vous pouvez trouver la distance focale(f). Ces éléments peuvent varier en fonction de votre appareil photo.
Pixels par millimètre
Nous avons besoin de connaître les pixels par millimètre(px/mm) sur le capteur d'image.
f_x=f*m_x
f_y=f*m_y
Puisque nous avons deux variables pour chaque formule, nous pouvons résoudre pour m_x et m_y.Je viens de moyenne f_x et f_y pour obtenir f_xy.
m=f_xy/focal_length_of_camera
Insérer l'image
Insérer votre image à partir de laquelle vous avez besoin de trouver la taille réelle de l'image. Vous devez connaître la distance entre l'objet et la caméra. Trouver la dimension de l'image (height1Xwidth1)
Trouver la taille de l'Objet en pixels
Déterminer la taille de l'objet en pixels. J'ai simplement utiliser la formule de la distance pour trouver la longueur d'une ligne sélectionnée. Vous pouvez adopter une autre méthode.
Convertir px/mm dans le bas de la résolution
pxpermm_in_lower_resolution = (width1*m)/largeur
La taille de l'objet dans le capteur d'image
size_of_object_in_image_sensor = object_size_in_pixels/(pxpermm_in_lower_resolution)
Taille réelle de l'objet
La taille réelle de l'objet peut être trouvé avec les données ci-dessus que,
real_size = (dist*size_of_object_in_image_sensor)/focal_length
En supposant qu'ils sont tous à la même distance, à l'échelle, vous souhaitez trouver une seule unité de mesure, vous pouvez garantir. Par exemple, si il y a une personne dans la photo, encore une fois, à la même échelle, et vous savez qu'ils sont exactement 6 pieds de hauteur, vous l'utiliser comme votre mesure. Vous prenez alors qu', et de compter combien de empilées faire l'arbre. Par exemple, si vous avez besoin d'3.5 de cette personne, puis:
vous donne un 21 pieds de haut à l'arbre.
Sans un point de référence unique pour tout, ou si ils sont tous sur des échelles différentes, vous aurait besoin de beaucoup plus d'informations que vous pouvez facilement obtenir sans avoir été là.
Je voudrais compter sur un objet de dimensions connues pour être présentes dans l'image. Par exemple, un homme.
Ou peut-être, on pourrait utiliser les données EXIF de désosser la taille de l'objet en fonction du capteur de l'appareil dimensions, de la lentille et de la focale utilisée. Cela dépend encore une fois sur l'angle. Nous devrions avoir des résultats plus précis lorsque l'appareil a été tenu à la perpendiculaire de l'objet.
Si votre image est de 3*3 et vous voulez connaître la taille de l'image (j'.e 3x3..donc 3x3 = 9) maintenant, nous avons 8 pixels à partir de 0 jusqu'à 8. Donc, 9/8=(___)ko.
Si vous voulez trouver la taille de l'image en MO, aime faire l'exemple ci-dessus, il suffit de faire comme ça (9/8)/(1024)=(----)MO..
De sorte que vous obtiendrez le résultat en Mo.