2017-08-29 3 views
0

enter image description hereobjets détecter dans une image

Je joins une image qui est constituée d'objets. Le problème est de trouver le nombre d'objets présents dans l'image. J'ai essayé opencv trouver la fonction de contour et la correspondance de modèle mais cela ne fonctionne pas bien. Les objets présents dans l'image n'ont pas besoin d'être identiques.

Y a-t-il une meilleure façon de résoudre ce genre de problème?

im2, contours, hierarchy = cv2.findContours(bilateral_filtered_image,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) 
new_cnts=[] 
for c in contours: 
    area = cv2.contourArea(c) 
    k = cv2.isContourConvex(c) 
    if (20<area<200): 
     new_cnts.append(c) 
+2

Quelle est la différence avec [votre autre question?] (Https://stackoverflow.com/q/45898282/5008845) – Miki

+0

D'accord avec @Miki, il suffit d'inverser votre image. –

+0

J'ai essayé de faire la même chose mais je n'ai pas obtenu de résultats satisfaisants. Ce que je demande, c'est qu'il peut y avoir un moyen général qui peut être utilisé pour détecter des objets indépendamment de leur apparence. Tout simplement parce que l'objet n'est pas la même chose que l'objet dans la question précédente, introduisez l'opération d'inversion. –

Répondre

0

1: Seuil en blob trouver (avec un certain raffinement dans la taille et la forme de blob pour être plus précis).

ou 2: Canny filtre de bord dans la recherche de cercle. Ils ont tous l'air assez circulaire et ont plus ou moins des bords nets. Cela dit, je base seulement votre image donnée, la première étape de l'imagerie est toujours empiler le pont avec l'éclairage et l'angle de caméra lorsque vous le pouvez. Il y a plusieurs façons d'ajouter de la lumière à cette configuration pour rendre la configuration de la vision plus robuste quelle que soit la modalité choisie.

+0

La chose est que je peux optimiser pour détecter l'objet avec précision pour cette image, mais il devrait fonctionner en général. Comme il peut y avoir différents objets une échelle différente, peut être transformée affine, éclairée différemment. Je veux aussi tenir compte de ces situations. Au moins, l'approche devrait être telle qu'elle puisse fonctionner avec une assez bonne précision pour différents types d'objets. –

+1

@KaranKumar Il n'y a pas de détection précise d'objets généraux. J'ai travaillé avec la détection de logo et le suivi pendant presque un an et j'ai utilisé tout de SURF, SIFT, ORB à l'appariement de modèles et à la mini-hachage de paquet. Chaque fois que je devais affiner mon code pour le type spécifique de logos que j'essayais de détecter. – zindarod

+0

Donc, vous devez avoir des tonnes de données d'entraînement avec des échantillons organisés et bien découpés, ainsi qu'une excellente représentation de la distribution des échantillons, ce qui prend souvent plus de temps. temps que la mise en place de la solution particulière avec des outils de vision standard. –