[PYTHON] Je veux changer le drapeau japonais en drapeau des Palaos avec Numpy

introduction

Afin de changer le drapeau japonais en drapeau des Palaos, nous avons effectué un traitement d'image simple avec numpy.

Quel est le drapeau japonais?

** drapeau japonais-Wikipedia ** Le drapeau japonais (Nippon no Kokki, Nihon no Kokki) est légalement appelé le Nisshoki, et depuis les temps anciens au Japon, il a été généralement appelé le Hinomaru.

Quel est le drapeau des Palaos?

** Drapeau des Palaos-Wikipedia ** Le drapeau de la République des Palaos (Beluu er a Belau) est un drapeau avec un cercle jaune disposé légèrement plus près du mât au centre et un fond bleu vif.

code

kokki.py


import cv2
import numpy as np

img = cv2.imread("./test/japan.png ").astype(np.float32)
H, W, C = img.shape

b = img[:, :, 0].copy()
g = img[:, :, 1].copy()
r = img[:, :, 2].copy()

# Gray scale
img = 0.2126 * r + 0.7152 * g + 0.0722 * b
# Binarization
img[img < 100] = 0

H_new = np.ceil((H+W) * 5 / 13).astype(np.int)
W_new = np.ceil((H+W) * 8 / 13).astype(np.int)

_img = np.zeros((H_new, W_new, C), dtype=np.float)
_img[..., 0] = 214
_img[..., 1] = 173
_img[..., 2] = 74

for i in range(H):
	for j in range(W):
		if img[i, j] == 0:
			h = H // 2 - i
			w = W // 2 - j
			_img[H_new//2 - h, W_new//2 - w - H_new//10, 0] = 0
			_img[H_new//2 - h, W_new//2 - w - H_new//10, 1] = 209
			_img[H_new//2 - h, W_new//2 - w - H_new//10, 2] = 255


out = _img.astype(np.uint8)

# Save result
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.imwrite("./test/palau.png ", out)

Créez un tableau dans lequel la taille du drapeau japonais est convertie en rapport hauteur / largeur du drapeau des Palaos. Après cela, ajoutez la couleur d'arrière-plan au tableau vide. Puisque le code couleur est # 4AADD6, utilisez la valeur obtenue en le convertissant en BGR. Ici, un cercle est détecté à partir du drapeau japonais binarisé à l'aide d'un balayage raster, et les coordonnées du drapeau des Palaos sont obtenues à partir des coordonnées x et y et BGR est inséré. (Le code couleur est # FFD100)

Résultat d'exécution

Image d'entrée japan.png

Image de sortie palau.png

Bonus (drapeau du Bangladesh)

Je suis seul à Palau, alors je vais essayer avec le drapeau du Bangladesh.

kokki2.py


import cv2
import numpy as np

img = cv2.imread("./test/japan.png ").astype(np.float32)
H, W, C = img.shape

b = img[:, :, 0].copy()
g = img[:, :, 1].copy()
r = img[:, :, 2].copy()

# Gray scale
img = 0.2126 * r + 0.7152 * g + 0.0722 * b
# Binarization
img[img < 100] = 0

H_new = np.ceil((H+W) * 3 / 8).astype(np.int)
W_new = np.ceil((H+W) * 5 / 8).astype(np.int)

_img = np.zeros((H_new, W_new, C), dtype=np.float)
_img[..., 0] = 81
_img[..., 1] = 102
_img[..., 2] = 0

for i in range(H):
	for j in range(W):
		if img[i, j] == 0:
			h = H // 2 - i
			w = W // 2 - j
			_img[H_new//2 - h, W_new//2 - w - H_new//10, 0] = 73
			_img[H_new//2 - h, W_new//2 - w - H_new//10, 1] = 6
			_img[H_new//2 - h, W_new//2 - w - H_new//10, 2] = 233


out = _img.astype(np.uint8)

# Save result
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.imwrite("./test/bangladesh.png ", out)

Le rapport hauteur / largeur pour Palau est réglé sur 3: 5 et la couleur est modifiée.

Résultat d'exécution bangladesh.png

Résumé

Les Palaos et le Bangladesh ne sont pas très différents ...

Recommended Posts

Je veux changer le drapeau japonais en drapeau des Palaos avec Numpy
Je veux hériter de l'arrière avec la classe de données python
[Python] Je souhaite utiliser l'option -h avec argparse
Je veux déterminer l'authenticité d'un élément du tableau numpy
Je souhaite envoyer un message d'erreur en japonais avec le formulaire de changement de mot de passe django
Je veux faire ○○ avec les Pandas
Je veux aligner les nombres valides dans le tableau Numpy
Je veux déboguer avec Python
Je veux connaître la météo avec LINE bot avec Heroku + Python
Je veux sortir le début du mois prochain avec Python
Pour le moment, je veux convertir n'importe quel fichier avec ffmpeg !!
Je veux vérifier la position de mon visage avec OpenCV!
Je veux détecter des objets avec OpenCV
Je veux écrire un blog avec Jupyter Notebook
Je veux installer Python avec PythonAnywhere
Je veux analyser les journaux avec Python
Je veux jouer avec aws avec python
Je veux afficher la barre de progression
Je veux gérer la rime part2
Je veux gérer la rime part5
Je veux gérer la rime part4
Je veux changer la couleur en cliquant sur le point de dispersion dans matplotlib
Je veux exprimer mes sentiments avec les paroles de Mr. Children
Je souhaite arrêter la suppression automatique de la zone tmp dans RHEL7
J'ai essayé de sauvegarder les données avec discorde
Je veux moquer datetime.datetime.now () même avec pytest!
Je veux frapper 100 sciences des données avec Colaboratory
Je veux faire un jeu avec Python
Je voulais jouer avec la courbe de Bézier
Je veux être OREMO avec setParam!
Je souhaite utiliser le répertoire temporaire avec Python2
Je ne veux pas utiliser -inf avec np.log
#Unresolved Je veux compiler gobject-introspection avec Python3
Je souhaite utiliser ip vrf avec SONiC
Je veux résoudre APG4b avec Python (chapitre 2)
Je veux recommencer avec Migrate de Django
Je souhaite personnaliser l'apparence de zabbix
Je veux écrire dans un fichier avec Python
Je souhaite utiliser la fonction d'activation Mish
Je veux afficher la progression en Python!
Le fichier édité avec vim était en lecture seule, mais je veux le sauvegarder
Lorsque j'ai essayé de changer le mot de passe root avec ansible, je ne pouvais pas y accéder.
Je veux écrire un élément dans un fichier avec numpy et le vérifier.
Je veux utiliser mkl avec numpy et scipy sous l'environnement pyenv + poetry
J'ai essayé d'entraîner la fonction péché avec chainer
Je veux convertir une image en WebP avec sucette
Je veux voir le nom de fichier de DataLoader
Je souhaite détecter une connexion non autorisée à Facebook avec Jubatus (1)
Je voulais aussi vérifier les indices de type avec numpy
Je veux faire la transition avec un bouton sur le ballon
Je veux grep le résultat de l'exécution de strace
Je veux faire défiler la table de décalage Django, mais ...
Je veux escalader une montagne avec l'apprentissage par renforcement
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de résoudre Soma Cube avec python
Je veux bien comprendre les bases de Bokeh
Je veux travailler avec un robot en python.
Je veux diviser une chaîne de caractères avec hiragana