2017-10-02 2 views
0

Verwandten - Crop image to bounding box in Tensorflow Object Detection APIWie die Begrenzungsbox auf der Festplatte als Bilder gespeichert werden, während zu diesem Beitrag mit Objekterkennung api in tensorflow

Im Folgenden finden Sie Code-Schnipsel aus der tensorflow Objekterkennung API Probe, die ich zu ändern versuche

Zwei Fragen/Probleme, denen ich gegenüberstehe 1) Was wäre der Wert von "i" sollte ich in den Boxen verwenden, wenn ich das erste Bounding-Box-Bild will? Ist es 0 für die erste Bounding Box und 1 für die zweite Bounding Box?

2) Ich bin immer Fehler auf der letzten Zeile, wenn sie versuchen, das Bild zu zeichnen - plt.imshow „Typeerror: Die Bilddaten können nicht schwimmen konvertieren“

ymin = boxes[0,0,0] 
    xmin = boxes[0,0,1] 
    ymax = boxes[0,0,2] 
    xmax = boxes[0,0,3] 
    (im_width, im_height) = image.size 
    (xminn, xmaxx, yminn, ymaxx) = (xmin * im_width, xmax * im_width, ymin * im_height, ymax * im_height) 
    cropped_image = tf.image.crop_to_bounding_box(image_np, int(yminn), int(xminn),int(ymaxx - yminn), int(xmaxx - xminn)) 
    plt.figure(figsize=IMAGE_SIZE) 
    plt.imshow(cropped_image) 

Antwort

2

cropped_image ein Tensor ist. Sie müssen den Tensor in einer Sitzung auswerten, um ein numpy Array zu erhalten. Zum Beispiel:

import tensorflow as tf 

# <insert the rest of your graph building code before here> 
cropped_image = ... 
sess = tf.Session() 
img_data = sess.run(cropped_image) 
sess.close() 

plt.figure(figsize=IMAGE_SIZE) 
plt.imshow(img_data) 
+0

Funktioniert wie ein Charme, vielen Dank für die blitzschnelle Antwort Ed! –

Verwandte Themen