[Python] Accès et recadrage des pixels d'image à l'aide d'OpenCV (pour les débutants)

introduction

Je vais vous expliquer comment recadrer une image en utilisant OpenCV. Ceci est une continuation de la précédente, donc si vous avez des questions dans cet article, veuillez jeter un œil.

environnement

MacOS Mojave Python 3.7

Image utilisée

Utilisez l'image ci-dessous (neko.jpg). neko.jpg

Vérifiez la taille de l'image

Vous pouvez vérifier la taille de l'image avec le code suivant.

python


#Charger la bibliothèque
import cv2
import matplotlib.pyplot as plt

img = cv2.imread("neko.jpg ")
print(img.shape)

Lorsque j'exécute le code ci-dessus, j'obtiens les résultats suivants:

(900, 1600, 3)

Cela signifie 900 pixels verticalement, 1600 pixels horizontalement et 3 canaux. Dans le cas d'une image couleur, le nombre de canaux est de 3 car il s'agit de GBR. Dans le cas de l'échelle de gris, le nombre de canaux est de 1 car il ne s'agit que du degré de blancheur.

Coordonnées de l'image

Dans Opencv, les axes de coordonnées de l'image sont les suivants. 座標.png

Lorsque la position est (x, y), l'origine (0,0) est en haut à gauche comme indiqué sur la figure. Lorsque vous traitez avec des images, veuillez noter que la direction descendante est la direction positive de l'axe y. La taille de cette image est de 900 pixels verticalement et de 1600 pixels horizontalement, de sorte que les coordonnées x et y des pixels de fin de l'image sont respectivement 899 et 1599. La raison pour laquelle il ne devient pas 900 ou 1600 est qu'il compte à partir de l'origine 0.

Accès aux coordonnées de l'image

Si vous spécifiez les coordonnées de l'image comme suit, vous pouvez obtenir la valeur de couleur de cette position.

python


img = cv2.imread("neko.jpg ")
print(img[450,800])

production


[153 161 190]

Cela indique que la couleur à la position à la coordonnée (450.800) est (R, V, B) = (153.161.190). En outre, vous pouvez spécifier plusieurs coordonnées en procédant comme suit.

print(img[450:650,800:1000])
[[[153 161 190]
  [153 161 190]
  [152 160 189]
  ...
  [169 178 205]
  [169 178 205]
  [169 178 205]]

 [[152 160 189]
  [152 160 189]
  [153 161 190]
  ...
  [169 178 205]
  [169 178 205]
  [169 178 205]]

 [[151 159 188]
  [152 160 189]
  [154 162 191]
  ...
  [171 178 205]
  [172 179 206]
  [172 179 206]]

 ...
Omis ci-dessous. .. ..

Considérez le ":" dans [] comme le même que le "~" que nous utilisons habituellement pour représenter une plage de nombres. Dans l'exemple ci-dessus, les informations de couleur comprises entre les coordonnées (450 800) et (649 999) sont émises. 座標_位置指定.png

Couper à n'importe quelle position

Si vous placez la plage spécifiée de l'image dans un autre objet, vous pouvez obtenir l'image avec la position découpée.

python


#Charger la bibliothèque
import cv2
import matplotlib.pyplot as plt

img = cv2.imread("neko.jpg ")
#Img le pixel spécifié_Substitut pour garniture
img_trim = img[450:650,800:1000]
#Changer de couleur
img_trim = cv2.cvtColor(img_trim, cv2.COLOR_BGR2RGB)
#afficher
plt.imshow(img_trim)
plt.show()

切り取り画像.png

Si l'image ci-dessus est sortie, c'est réussi! (Puisqu'il s'agit d'un tatami, il est difficile de dire s'il est découpé ... lol) La prochaine fois, j'aimerais expliquer le travail de pétrissage, comme la mise à l'échelle et l'inversion de l'image: blush:

Je fais Twitter

Si vous souhaitez faire diverses choses telles que des informations sur de futurs articles et des questions et réponses, veuillez me suivre ...! : soulagé: https://twitter.com/ryuji33722052

Recommended Posts

[Python] Accès et recadrage des pixels d'image à l'aide d'OpenCV (pour les débutants)
OpenCV pour les débutants en Python
[Python] Utilisation d'OpenCV avec Python (filtrage d'image)
[Python] Utilisation d'OpenCV avec Python (transformation d'image)
[Traitement d'image] Poo-san est nu par détection de bord en utilisant Python et OpenCV!
Remarques sur l'utilisation d'OpenCV avec Windows10 Python 3.8.3.
Implémentation et description à l'aide de XGBoost pour les débutants
Créer une lecture de feuille de notes avec Python OpenCV (Conseils pour bien lire)
Estimation de l'orientation de la tête avec Python et OpenCV + dlib
Raisonnement causal et recherche causale par Python (pour les débutants)
J'ai essayé la détection d'objets en utilisant Python et OpenCV
Manuel python pour les débutants
Analysons les données Covid-19 (Corona) en utilisant Python [Pour les débutants]
Janken Poi en Python pour les débutants (réponses et explications)
Paramètres initiaux pour l'utilisation de Python3.8 et pip sur CentOS8
Recherche de balises pixiv et enregistrement d'illustrations à l'aide de Python
Squelettes extensibles pour Vim utilisant Python, Click et Jinja2
Python # Comment vérifier le type et le type pour les super débutants
Flux d'apprentissage pour les débutants en Python
Édition d'image avec python OpenCV
[Python] Utilisation d'OpenCV avec Python (basique)
Essayez une recherche similaire de recherche d'images à l'aide du SDK Python [Recherche]
Installation d'OpenCV3 pour Python3 @macOS
Application de Python: Nettoyage des données Partie 3: Utilisation d'OpenCV et prétraitement des données d'image
Méthode d'apprentissage TensorFlow pour les professionnels des arts libéraux et les débutants en Python
CNN (1) pour la classification des images (pour les débutants)
Construction de l'environnement Python3 (pour les débutants)
Python #function 2 pour les super débutants
Grammaire de base Python pour les débutants
Pandas 100 coups pour les débutants en Python
Python #function 1 pour les super débutants
[Python] Introduction à la création de graphiques à l'aide de données de virus corona [Pour les débutants]
#List Python pour les super débutants
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
Tirez en accéléré à partir d'une caméra PC en utilisant Python, OpenCV
Utiliser OpenCV avec Python @Mac
Interpolation automatique des images avec OpenCV et Python (méthode de marche rapide, Navier-Stokes)
[Apprentissage automatique Python] Recommandation d'utilisation de Spyder pour les débutants (à partir d'août 2020)
Pydroid 3 - J'ai essayé les options OpenCV et TensorFlow de l'IDE pour Python 3 (Android)
Créez une illusion rayée avec correction gamma pour Python3 et openCV3
Créez un lot planifié simple à l'aide de l'image Python de Docker et de parse-crontab
Je viens d'effacer l'objet en utilisant la réparation d'image (inpaint) (OpenCV: Python)
Créez et essayez un environnement OpenCV et Python en quelques minutes à l'aide de Docker
Alignement d'images numérisées de papier vidéo animé à l'aide d'OpenCV et de Python
[Explication pour les débutants] Mécanisme de détection de visage OpenCV et pratique (détecter MultiScale)
Vider, restaurer et rechercher des requêtes d'instances de classe Python à l'aide de mongodb
Construction d'environnement de python et opencv
Capture d'image de Firefox en utilisant Python
Réseau neuronal avec OpenCV 3 et Python 3
Jugement de l'image rétroéclairée avec OpenCV
Exercices Python pour les débutants # 2 [pour instruction / instruction while]
Authentification à l'aide de l'authentification des utilisateurs tweepy et de l'authentification d'application (Python)
Python pour les super débutants Super débutants Python # dictionnaire type 1
[Python] Utilisation d'OpenCV avec Python (détection des bords)
Notes personnelles pour le traitement d'images python
Python #index pour les super débutants, tranches
Image de conteneur recommandée pour les applications Python
<Pour les débutants> bibliothèque python <Pour l'apprentissage automatique>