Ich habe versucht, den Fehler in italienischen Zutaten von Saiseriya mit OpenCV zu finden.
Schneiden Sie die beiden Bilder sorgfältig aus, damit sie dieselbe Pixelgröße haben, und speichern Sie sie im PNG-Format.
Importieren Sie eine Bibliothek wie OpenCV.
import os
import subprocess
from PIL import Image
import cv2
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
Speichern Sie die ausgeschnittene Bilddatei im Ordner dir1. Stellen Sie als Nächstes die Bildgröße auf 300 * 300px ein und speichern Sie sie im Ordner dir2.
dir1 = 'png'
dir2 = 'png_resize'
files1 = os.listdir(dir1)
files1.sort()
for file in files1:
if '.png' in file:
img0 = os.path.join(dir1, file)
img0_img = Image.open(img0)
img1_img = img0_img.resize((300,300))
img1 = os.path.join(dir2, file)
img1_img.save(img1)
print(file)
# s1.png
# s2.png
Teilen Sie das Bild vertikal und horizontal durch 300, um den b-Wert zu erhalten. Wenn die Anzahl der Unterteilungen ein Bruchteil von 300 ist, ist dies in Ordnung. Wenn Sie jedoch 300 einstellen, dh Max, ist die Genauigkeit des Differenzbilds am höchsten.
dir2 = 'png_resize'
files2 = os.listdir(dir2)
files2.sort()
std_data2 =[]
image_data2 = []
grid =300 #Abteilungsnummer
for file in files2:
if '.png' in file:
img = cv2.imread('./png_resize/' + file)
h, w, c = img.shape
v_split = grid
h_split = grid
_img = img[:h // v_split * v_split, :w // h_split * h_split]
image_data =[]
for h_img in np.vsplit(_img, v_split):
for v_img in np.hsplit(h_img, h_split):
b, g, r = cv2.split(v_img)
value = round(b.mean())/100
image_data.append(value)
image_data2.append(image_data)
Finde den Unterschied und visualisiere ihn.
image_array2 = np.array(image_data2)
dif_array = image_array2[0] - image_array2[1]
dif_image=dif_array.reshape(grid,grid)
plt.imshow(dif_image)
Es gibt einige Teile, die schwer zu verstehen sind, aber es scheint, dass alle entdeckt wurden.
Es ist eine einfache Methode, aber ich denke, sie kann genug verwendet werden, um Fehler zu finden. Ich werde noch schwierigere Aufgaben versuchen.
Recommended Posts