Um die japanische Flagge in die Palau-Flagge zu ändern, haben wir eine einfache Bildverarbeitung mit numpy durchgeführt.
** Japanische Flagge-Wikipedia ** Die japanische Flagge (Nippon no Kokki, Nihon no Kokki) wird gesetzlich als Nisshoki bezeichnet, und seit der Antike in Japan wird sie allgemein als Hinomaru bezeichnet.
--Aspektverhältnis 2: 3
** Flagge von Palau-Wikipedia ** Die Flagge der Republik Palau (Beluu er a Belau) ist eine Flagge mit einem gelben Kreis, der etwas näher am Fahnenmast in der Mitte angeordnet ist, und einem hellblauen Hintergrund.
--Aspektverhältnis 5: 8
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)
Erstellen Sie ein Array, in dem die Größe der japanischen Flagge in das Seitenverhältnis der Palau-Flagge konvertiert wird. Fügen Sie danach die Hintergrundfarbe zum leeren Array hinzu. Da der Farbcode # 4AADD6 ist, verwenden Sie den Wert, der durch Konvertieren in BGR erhalten wird. Hier wird ein Kreis von der binärisierten japanischen Flagge unter Verwendung eines Raster-Scans erkannt, und die Koordinaten der Palau-Flagge werden aus den x- und y-Koordinaten erhalten, und BGR wird eingefügt. (Farbcode ist # FFD100)
Bild eingeben
Ausgabebild
Ich bin allein in Palau einsam, also werde ich es mit der Flagge von Bangladesch versuchen.
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)
Das Seitenverhältnis für Palau wird auf 3: 5 eingestellt und die Farbe wird geändert.
Ausführungsergebnis
Palau und Bangladesch sind nicht viel anders ...
Recommended Posts