简体   繁体   English

为什么使用tf.image.sample_distorted_bounding_box边界框和裁剪的图片不匹配?

[英]Why does not the bounding box and clipped picture match using tf.image.sample_distorted_bounding_box?

I want get a bounding box and clipped picture according to the bounding box , so I used tf.image.sample_distorted_bounding_box . 我希望得到一个边框 ,并根据边框剪辑的图片,所以我用tf.image.sample_distorted_bounding_box But I failed, What I did wrong? 但是我失败了,我做错了什么? My result looks like 我的结果看起来像 这个

The bounding box and the clipped picture according to the bounding box does not match. 边框并根据边界框不匹配所剪辑的图片。

My code: 我的代码:

with tf.Session() as sess:         
    boxes = tf.constant([[[0.05, 0.05, 0.9, 0.7], [0.35, 0.47, 0.5, 0.56]]])

    image_float = tf.image.convert_image_dtype(img_data, tf.float32) # uint8 -> float

    # resize image
    image_small = tf.image.resize_images(image_float, [180, 267], method=0)

    # Generate a single distorted bounding box.
    begin, size, bbox_for_draw = tf.image.sample_distorted_bounding_box(
        tf.shape(image_small),
        bounding_boxes=boxes,
        min_object_covered=0.1)

    # Draw the bounding box in an image summary.
    image_with_box = tf.image.draw_bounding_boxes(tf.expand_dims(image_small, 0),
                                                  bbox_for_draw)

    tf.summary.image('images_with_box', image_with_box)

    # Employ the bounding box to distort the image.
    distorted_image = tf.slice(image_small, begin, size)

    plt.figure(figsize = (30, 20))
    plt.subplot(3, 1, 1)
    plt.title("image with a random box")
    plt.imshow(image_with_box[0].eval())

    plt.subplot(3, 1, 2)
    plt.title("destorted image")
    plt.imshow(distorted_image.eval())
plt.show()

That is because each call to .eval() triggers a new run of the graph and therefore produces a new random bounding box. 这是因为每次调用.eval()触发图形的新运行,因此会产生一个新的随机边界框。

To have consistent outputs you need to run operators simultaneously, eg 为了获得一致的输出,您需要同时运行运算符,例如

res = sess.run([image_with_box[0], distorted_image])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM