Comment trouver l'emplacement de la zone rouge dans une image à l'aide de MATLAB?
Comment trouver l'emplacement de la zone rouge dans la première image et de la marque du même emplacement dans l'image en niveaux de gris à l'aide de matlab?
Bien, je reçois le résultat de dégradé de gris de l'image, pas de couleur de l'image, comme indiqué dans la première image. Je pense que c'est juste une représentation en couleur de l'éclairage au niveau de l'image. Dans ce cas, vous devez seuil de l'image pour la valeur appropriée pour isoler les régions de haute illumintation. J'ai édité ma réponse pour que.
Juste par curiosité: Quelle est la première image générée?
Juste par curiosité: Quelle est la première image générée?
OriginalL'auteur Kim | 2012-01-26
Vous devez vous connecter pour publier un commentaire.
Espère que c'est la continuation de cette question.
Je voudrais suggérer que vous lisez d'abord des bonnes et des livres fondamentaux sur le traitement de l'image. Je recommande ce livre: Traitement numérique de l'image à l'aide de MATLAB par Gonzalez.
De toute façon, sujet de votre question:
1) Convertir l'image au R,G,B de l'avion.
2) Depuis requises région a haute teneur en rouge(comme par l'image dans votre question), prendre R plan et du seuil de valeur appropriée.
3) Vous obtenez l'image binaire où le code-barres de la région est d'une couleur(à supposer que blanc) et l'autre partie est d'une couleur différente (noir).
4) Maintenant obtenir l'emplacement de la zone blanche comme un rectangle englobant minimal.
Une fois que vous avez obtenu cet emplacement de rectangle, faire ce que vous voulez. Par exemple, pour isoler le code à barres pour la reconnaissance des codes barres, des cultures de ce rectangle de l'image d'origine à l'aide de imcrop commande:
(Je sais que le code n'est pas complet. Je donne seulement des conseils de commandes à utiliser. Parce que, je ne suis pas familier avec matlab et j'utilise opencv pour le traitement de l'image. Mais je suis sûr, c'est une tâche facile et vous pouvez compléter le code).
EDIT:
Après que j'ai mis en œuvre la dérivation de la formule et de les appliquer de filtre passe-bas, de l'image que j'ai est une échelle de gris. J'ai juste appliqué un seuil, de sorte que je ne reçois que les régions de forte illumination(qui incluent les codes à barres de la région) et l'interdiction de toutes les autres partie. Maintenant, appliquez une érosion pour enlever de simples bruits ou de petites erreurs de détection. Appliquer la dilatation de la rémunération. Maintenant, trouver le contour avec un maximum de zone (qui est, probablement, le code-barres). Obtenez plus petit rectangle de délimitation. Il est de votre code à barres. ( J'ai juste mis en œuvre dans OpenCV Python. Je ne sais pas comment le faire dans Matlab). Ci-dessous quelques résultats de tests:
Ci-dessous est la OpenCV code:
Essayer ce code. Si vous comprenez le code, essayez de convertir au logiciel matlab. Vous pouvez voir OpenCV documentation ici.
Est la sortie de ce même code en tant que première image dans votre question? Je veux dire, haut de couleur rouge à l'emplacement du code à barres?
yup!! le codage est à partir d'ici, link
Je sais. J'ai vu cette question. Si c'est le cas, la procédure que j'ai dit ci-dessus est simple à mettre en œuvre. Premier split image R de l'avion comme je l'ai dit ci-dessus. Appliquer de seuil. Les commandes que j'ai donné ci-dessus. Ne pouvez-vous pas essayer? Tout d'abord, j'ai de nouveau vous suggère de lire le livre que j'ai mentionné. Sans les connaissances de base, vous ne pouvez pas aller de l'avant.
Je l'ai fait essayer le codage mais il ne fonctionne pas... a Tenté d'accéder à ColourBar(:,2); l'indice hors limites, car numel(ColourBar)=1. Est ce que j'ai la mauvaise variable??
OriginalL'auteur Abid Rahman K