2010-04-26 5 views
0

Quel est l'algorithme le meilleur et le plus flexible pour détecter tout noir (ou pixel coloré) dans un fichier image donné? Par exemple, on me donne un fichier image qui pourrait, disons, avoir un arrière-plan bleu. Et tout pixel non bleu, y compris un pixel blanc, est compté comme une "marque". La fonction renvoie true s'il y a X nombre de pixels qui s'écartent l'un de l'autre à un certain seuil.Le moyen le plus optimal pour détecter si noir (ou des pixels de couleur) existe dans un fichier image?

Je pensais que ce serait plus rapide de simplement parcourir chaque pixel et voir si sa couleur correspond à la dernière. Mais si c'est le cas que pixel (0,0) est déviant, et que chaque autre pixel est de la même couleur (et que je veux autoriser au moins quelques pixels déviés avant de considérer une image à marquer), cela ne fonctionnera pas

Répondre

0

M1: analyse l'intégralité de l'image. M2: Xou avec la couleur que vous recherchez.

Par exemple, vous cherchez r, g, b = (112,233,35), XOR la ​​première couche r avec 112, g avec 233 et b avec 35. (en supposant que son image 24 bits (chaque couche est de 8 bits)). Dans l'image résultante, trouvez les pixels les plus brillants et revenez à ces pixels dans l'image originale pour vérifier.

0

Vous pouvez toujours vérifier les pixels avoisinants, si le pixel 3x3 est noir, puis vérifier 2x2, 2x3, 2x4, 3x2, 3x4 et ainsi de suite et avoir une valeur trechhold à quelle distance de ces pixels proches peuvent être Pour une image normale, chaque pixel doit avoir des pixels voisins avec des couleurs similaires, il y a très peu d'exceptions à cela dans les images haute résolution. Editer: Trouver un treshhold qui fonctionne peut différer d'image en image en fonction d'une multitude de minces gs donc vous devrez probablement être en mesure d'affiner le treshhold pour obtenir de bons résultats.