Wie geht es euch allen an den heißen Tagen im August? </ br> Ich bin kurz davor zu schmelzen, aber während ich [Genshi Yonezu's neues Lied] höre (https://youtu.be/XeFQJ6-XoD0) </ strong> Ich codiere in einem Raum, in dem ich Tag und Nacht nicht weiß, wann die Luft kühl ist. </ Strong>
Was sagt ihr Sommer?
Nein, Sommer ist der Sommer der *** Datenerweiterung! !! !! *** *** Also werde ich eine Methode zur Datenerweiterung mit openCV anstelle eines Memos schreiben.
python3 img_change.py input_directory output_directory
--Beispiel
python3 img_change.py /data/imageset /data/imagser_change
img_change.py
# -*- coding: utf-8 -*-
import numpy as np
import os
import cv2
import sys
import pathlib
import glob
from scipy.signal import qspline1d, qspline1d_eval, qspline2d,cspline2d
if len(sys.argv) != 3:
print("python3 test.py inputdir outputdir")
sys.exit()
else:
input_path = sys.argv[1]
file_list = glob.glob(input_path + "/**/**.png ", recursive=True)
for item in file_list:
split_name = item.split('/')
output_name = sys.argv[2] + "/" + split_name[-3] + "/" + split_name[-2] + "/" + split_name[-1]
output_dir = sys.argv[2] + "/" + split_name[-3] + "/" + split_name[-2]
pathlib.Path(output_dir).mkdir(parents=True,exist_ok=True)
img = cv2.imread(item, cv2.IMREAD_UNCHANGED) # read image
#Bildverarbeitungsteil
###Erhöhen Sie die Helligkeit des Bildes
chg_img=img*1.2 #Verdoppeln Sie die Helligkeit
###Bildgröße ändern
height = img.shape[0]
#img.shape[0]*0.5 halb so groß wie das Original
width = img.shape[1]
chg_img = cv2.resize(img , (int(width), int(height)))
###CLAHE (Umverteilung, damit das Histogramm so gleichmäßig wie möglich verteilt ist)
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
chg_img = clahe.apply(img)
###Lärm
row,col,ch = img.shape
#Weiß
pts_x = np.random.randint(0, col-1 , 1000) #Von 0(col-1)Machen Sie tausend Zufallszahlen bis zu
pts_y = np.random.randint(0, row-1 , 1000)
img[(pts_y,pts_x)] = (255,255,255) #y,Beachten Sie, dass die Reihenfolge x ist
#schwarz
pts_x = np.random.randint(0, col-1 , 1000)
pts_y = np.random.randint(0, row-1 , 1000)
img[(pts_y,pts_x)] = (0,0,0)
###Verzerren Sie das Bild
chg_img = cv2.flip(img, 1) #Horizontal umkehren
chg_img = cv2.flip(img, 0) #Vertikal umkehren
cv2.imwrite(output_name,chg_img ) #write image
$ tree
/data
└── val
├── A1
│ │
│ ├── 0.png
│ ├── 1.png
│ ├── 2.png
│ └── ....
├── B1
│ │
│ ├── 0.png
│ ├── 1.png
│ ├── 2.png
│ └── ....
│
train
├── A1
│ │
│ ├── 0.png
│ ├── 1.png
│ ├── 2.png
│ └── ....
├── B1
│ │
│ ├── 0.png
│ ├── 1.png
│ ├── 2.png
│ └── ....
│
test
├── A1
│ │
│ ├── 0.png
│ ├── 1.png
│ ├── 2.png
│ └── ....
├── B1
│ │
│ ├── 0.png
│ ├── 1.png
│ ├── 2.png
│ └── ....
│
└──
――Es gibt verschiedene Möglichkeiten, das Bild zu ändern. Probieren Sie es mit der OpenCV-Bildverarbeitung aus. --Referenzseite Bildverarbeitung mit Python ② Datenerweiterung (aufgeblasenes Bild)
Recommended Posts