[PYTHON] [OpenCV] Wenn Sie überprüfen möchten, ob es mit imread richtig gelesen wird

Ich habe OpenCV verwendet, um Bilder mit TensorFlow in das npy-Format zu konvertieren, aber ich habe einen Fehler festgestellt und mir eine Notiz gemacht.

Dummerweise habe ich vergessen, dass Datei-E / A-bezogene Funktionen vollständig hängen bleiben würden, wenn ich keine Ausnahmen behandeln würde, wenn sie fehlschlagen. Die Imread-Funktion ist eine davon.

Unten finden Sie eine Funktion, die einen Datensatz für den Tensorflow erstellt. Die Verarbeitung nach dem Lesen der Imread-Funktion erfolgt mit dem Urteil None. Wenn Sie dies nicht tun, erhalten Sie Moos in None, also müssen Sie dies tun. (Wenn Sie darüber nachdenken, ist es natürlich ...)

import os, sys
import numpy as np
import tensorflow as tf
import cv2

# config
flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_string('imgdir', '/home/hoge/fuga/piyo', 'Image dataset path')
flags.DEFINE_string('imgclasses', 4, 'The num of image dataset classes')
IMAGE_SIZE = 84 # the size of image
TRAIN_IMG_DIRS = os.listdir(FLAGS.imgdir)

def main():
  train_image, train_label = cvGetImageAndLabel()
  #Der Code zum Lernen ist mühsam und wird daher weggelassen.

def cvGetImageAndLabel():
  images = []
  labels = []
  for i, d in enumerate(TRAIN_IMG_DIRS):
    files = os.listdir(FLAGS.imgdir + '/' + d)
    for f in files:
      img = cv2.imread(FLAGS.imgdir + '/' + d + '/' + f)
      #Kein Urteil in diesem Teil
      if not img is None:
        img = cv2.resize(img, (IMAGE_SIZE, IMAGE_SIZE), interpolation = cv2.INTER_AREA)
        img = img.flatten().astype(np.float32)/255.0
        images.append(img)
        tmp = np.zeros(FLAGS.imgclasses)
        tmp[i] = 1
        labels.append(tmp)

  return np.asarray(images, dtype=np.float32), np.asarray(labels, dtype=np.float32)

if __name__ == '__main__':
  main()

Ich liebe den schmutzigen Code (?)

Referenzlink

http://stackoverflow.com/questions/23628325/cv2-imread-checking-if-image-is-being-read

Recommended Posts

[OpenCV] Wenn Sie überprüfen möchten, ob es mit imread richtig gelesen wird
Wenn Sie es so verwenden möchten, wie es ist, wenn Sie es mit Lambda-Memo verwenden
Schreiben Sie Python nicht, wenn Sie es mit Python beschleunigen möchten
Wenn es schwierig ist, das zu kopieren, was Sie mit vue erstellt haben
[TensorFlow] Wenn Sie TensorBoard ausführen möchten, installieren Sie es mit pip.
AssertNumQueries ist nützlich, wenn Sie N + 1-Abfragen einfach mit django testen möchten
nb_conda_kernels wird empfohlen, wenn Sie die virtuelle Umgebung mit jupyter betreten möchten
Einstellungen, wenn Sie Python-Mecab mit Travis ausführen möchten
Wenn Sie mit dem Django REST-Framework filtern möchten
Wenn Sie nicht wissen, wie Sie das gewünschte Diagramm mit matplotlib zeichnen sollen, können Sie sich die Galerie bequem ansehen
Wenn die Variable, die Sie in Matplotlib als hochgestellt verwenden möchten, aus zwei oder mehr Zeichen besteht
[AWS] Was tun, wenn Sie mit Lambda pfeifen möchten?
Verwenden Sie aggdraw, wenn Sie mit Kissen schön zeichnen möchten
Wenn Sie die Anfangsdaten von Django mit Relationen registrieren möchten
Eine Website, auf der Sie sehen können, wann Sie ein Papier zum maschinellen Lernen lesen möchten, das jedoch schwierig zu sein scheint
Wenn Sie ein Objekt mit Anforderungen mithilfe der Flasche senden möchten
Ich möchte die Position meines Gesichts mit OpenCV überprüfen!
Wenn Sie das Intervall der Achsenskala mit APLpy anpassen möchten
Ich möchte Objekte mit OpenCV erkennen
Ein Gist-Repository, das Sie verwenden können, wenn Sie es mit ansible ausprobieren möchten
Wenn Sie awsebcli in CircleCI aufnehmen möchten, geben Sie die Python-Version an
18 wunderschöne Python-Begriffe, die Sie vorlesen möchten. R18 mit Beispielsätzen
Wenn Sie mehrere Statistiken mit groupby of pandas v1 erhalten möchten
Bedeutet Memo, wenn versucht wird, maschinelles Lernen mit 50 Bildern durchzuführen
Lesen Sie die CSV-Datei mit Python und konvertieren Sie sie unverändert in DataFrame
Es ist praktisch, stac_info und exc_info zu verwenden, wenn Sie Traceback in der Protokollausgabe durch Protokollierung anzeigen möchten.
Problemumgehung, wenn beim Versuch, PySide mit pip zu installieren, eine Fehlermeldung angezeigt wird
Es ist bequemer, csv-table zu verwenden, wenn Sie eine Tabelle mit Python-Sphinx schreiben
Persönliche Best-Practice-Vorlage, die verwendet werden soll, wenn Sie MVP mit Flask erstellen möchten
Ich möchte ein Element mit numpy in eine Datei schreiben und es überprüfen.
Was tun, wenn bei der Installation von Python mit pyenv eine Fehlermeldung angezeigt wird?
Was tun, wenn bei der Eingabe eines Kameravideos in OpenCV ein Abbruch angezeigt wird?
Wenn Sie einen Discord-Bot mit Python erstellen möchten, verwenden wir ein Framework
Wenn Sie versuchen, Python2 pip nach der Installation von Python3 pip zu installieren, wird dies abgelehnt
Materialien zum Lesen, wenn Sie mit Python beginnen
Was tun, wenn bei der Installation von Python 2 mit pyenv ein OpenSSL-Fehler auftritt?
Was tun, wenn beim Importieren von matplotlib mit Jupyter ein Importfehler auftritt?
[Einführung in Python] Was ist das wichtige "if __name__ == '__ main__':" beim Umgang mit Modulen?
Was tun, wenn Sie bei Verwendung von ortoolpy.logistics_network keine japanischen Spaltennamen verwenden möchten?
Wenn Sie Cython verwenden möchten, schließen Sie auch python-dev ein
Überprüfen Sie, ob es sich um Unix in der Skriptsprache handelt
Links, um mit Sublime Text zu tun, was Sie wollen
Materialien zum Lesen, wenn Sie mit Apache Beam beginnen
Dinge zu tun, wenn Sie anfangen, sich mit Django zu entwickeln
Wenn Sie in der for-Anweisung plt.save möchten
Wenn es schwierig ist, beim Senden von E-Mails mit Python lokal einen SMTP-Server einzurichten.
Ich kenne? Datenanalyse mit Python oder Dingen, die Sie mit numpy verwenden möchten, wenn Sie möchten
Nützliche Operation, wenn Sie alle Probleme in mehreren Programmiersprachen mit Codewars lösen möchten
Wenn Sie ein Argument in die Abschlussfunktion einfügen und später ausführen möchten
Was tun, wenn beim Versuch, pip mit pyenv zu verwenden, ein undefinierter Fehler angezeigt wird?
Wenn Sie versuchen, eine Wortwolke mit Kommentaren von WEB-Manga zu erstellen, ist es interessant, visuell zu verstehen, um welche Art von Manga es sich handelt.
Ein Liner, den Sie treffen sollten, wenn Sie vergessen, wo heute ist
[Django] Memorandum, wenn Sie asynchron kommunizieren möchten [Python3]
Ich möchte initialisieren, wenn der Wert leer ist (Python)
Immerhin ist es falsch, mit Python-Subprozess zu katzen.
[Python] Wenn Sie plötzlich ein Anfrageformular erstellen möchten