[PYTHON] Créez un Mario en utilisant Numpy et OpenCV

Travaillez de côté! Trame de données qui se fâche

Mais cela a un but. OpenCV utilise le tableau ndarray de Numpy pour gérer les données.

Cela signifie que vous ne pouvez pas le reproduire en lançant un tableau à 1 dimension pour le gris et un tableau à 3 dimensions pour la couleur! J'ai fait un défi de métamorphose qui ignorait complètement les manières et les règles, et cassait à chaque fois. Cette fois, le travail est terminé avec succès Je téléchargerai un code qui ne sert à rien au monde.

J'ai dessiné un oncle pipe worker dans un arrangement 12x12.

mario.py



import cv2
import numpy as np

val = 0
#Créer une liste vide(12*12 pour tous les éléments 0)
rchannel = [[val] * 12 for i in range(12)]
rchannel = np.array(rchannel)
gchannel = [[val] * 12 for i in range(12)]
gchannel = np.array(gchannel)
bchannel = [[val] * 12 for i in range(12)]
bchannel = np.array(bchannel)

#Zone artisanale de l'enfer
rchannel[3,3:8] = 255
rchannel[4,2:11] = 255
rchannel[5,2:5] = 146
gchannel[5,2:5] = 41
bchannel[5,2:5] = 6
rchannel[5,5:7] = 248
gchannel[5,5:7] = 178
bchannel[5,5:7] = 108
rchannel[5,7] = 146
gchannel[5,7] = 41
bchannel[5,7] = 6
rchannel[5,8] = 248
gchannel[5,8] = 178
bchannel[5,8] = 108
rchannel[6,1] = 146
gchannel[6,1] = 41
bchannel[6,1] = 6
rchannel[6,2] = 248
gchannel[6,2] = 178
bchannel[6,2] = 108
rchannel[6,3] = 146
gchannel[6,3] = 41
bchannel[6,3] = 6
rchannel[6,4:7] = 248
gchannel[6,4:7] = 178
bchannel[6,4:7] = 108
rchannel[6,7] = 146
gchannel[6,7] = 41
bchannel[6,7] = 6
rchannel[6,8:11] = 248
gchannel[6,8:11] = 178
bchannel[6,8:11] = 108
rchannel[7,1] = 146
gchannel[7,1] = 41
bchannel[7,1] = 6
rchannel[7,2] = 248
gchannel[7,2] = 178
bchannel[7,2] = 108
rchannel[7,3:5] = 146
gchannel[7,3:5] = 41
bchannel[7,3:5] = 6
rchannel[7,5:8] = 248
gchannel[7,5:8] = 178
bchannel[7,5:8] = 108
rchannel[7,8] = 146
gchannel[7,8] = 41
bchannel[7,8] = 6
rchannel[7,9:11] = 248
gchannel[7,9:11] = 178
bchannel[7,9:11] = 108
rchannel[7,11] = 146
gchannel[7,11] = 41
bchannel[7,11] = 6
rchannel[8,1:3] = 146
gchannel[8,1:3] = 41
bchannel[8,1:3] = 6
rchannel[8,3:7] = 248
gchannel[8,3:7] = 178
bchannel[8,3:7] = 108
rchannel[8,7:11] = 146
gchannel[8,7:11] = 41
bchannel[8,7:11] = 6
rchannel[9,3:10] = 248
gchannel[9,3:10] = 178
bchannel[9,3:10] = 108
rchannel[10,2:4] = 255
bchannel[10,4] = 255
rchannel[10,5:9] = 255
rchannel[11,1:4] = 255
bchannel[11,4] = 255
rchannel[11,5:11] = 255

#Combiner les canaux
data_map = np.stack((bchannel,gchannel,rchannel),-1)
#Changer le type de données → Maintenant, il peut être géré par OpenCV
data_map = np.array(data_map, dtype="uint8")
#Agrandi pour une visualisation facile
data_map = cv2.resize(data_map, (400, 400),interpolation=cv2.INTER_NEAREST)

#afficher
cv2.imshow("show",data_map)
cv2.waitKey(0)
cv2.destroyAllWindows()

キャプチャ.JPG

Que 2020 soit une bonne année.

Recommended Posts

Créez un Mario en utilisant Numpy et OpenCV
Créer un discriminateur Sato Yohei en utilisant OpenCV et TensorFlow
Estimation de l'orientation de la tête avec Python et OpenCV + dlib
Connectez plusieurs vidéos en un seul coup en utilisant OpenCV!
J'ai essayé la détection d'objets en utilisant Python et OpenCV
list et numpy
Créez des données factices à l'aide des packages NumPy et Faker de Python
Laissez Python segfo sur une ligne sans utiliser de ctypes
Astuces Python et Numpy
RaspberryPi Zero et OpenCV
Essayez de le faire avec GUI, PyQt en Python
Tirez en accéléré à partir d'une caméra PC en utilisant Python, OpenCV
[Python] Accès et recadrage des pixels d'image à l'aide d'OpenCV (pour les débutants)