L'extraction d'une région à partir d'une image à l'aide de découpage en Python, OpenCV

J'ai une image et je veux extraire une région à partir d'elle. J'ai les coordonnées du coin supérieur gauche et le coin inférieur droit de cette région. Dans une échelle de gris, je fais comme ça:

I = cv2.imread("lena.png")
I = cv2.cvtColor(I, cv2.COLOR_RGB2GRAY)
region = I[248:280,245:288]
tools.show_1_image_pylab(region)

Je peux pas comprendre comment le faire en couleur. J'ai pensé à l'extraction de chaque canal R, G, B; le découpage de cette région à partir de chacun des canaux et de les fusionner ensemble mais il doit bien y avoir un moyen plus court.

  • Cela devrait fonctionner pour la couleur de l'image également.
  • l'essayer avant de convertir l'image en niveaux de gris
  • également, visualiser l'image à l'aide de cv2.imshow() fonction.
  • Rahman K j'ai essayé et ici est l'effet les Couleurs sont fausses. Je soupçonne que c'est juste l'un des canaux.
  • Vous pourriez peut-être utiliser les GetRectSubPix() pour obtenir de la région au lieu de le trancher.
  • Je l'ai juste testé. Et j'ai eu de la couleur de l'image elle-même. Affichage de l'image à l'aide de cv2.imshow() de la fonction, pas tout pylab ou matplotlib fonction, c'est juste affiché dans une couleur différente de la carte en eux.
  • Et si vous avez un doute, vérifiez-région.la forme et assurez-vous qu'il est au format [rows,cols,3].
  • Vous avez raison! Je suis confus par la couleur différente. Merci pour votre aide!

InformationsquelleAutor Booyaches | 2013-02-25