# *_*coding:utf-8 *_*
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
image_raw_data = tf.gfile.FastGFile('pictures\\resize\\1.jpg', 'rb').read()
with tf.Session() as sess:
img_data = tf.image.decode_jpeg(image_raw_data)
boxes = tf.constant([[[0.05, 0.05, 0.9, 0.7], [0.35, 0.47, 0.5, 0.56]]])
#可以随机提供标注框的方式来告诉随机截取图像的的算法哪些部分是“有用信息”
begin, size, bbox_for_draw = tf.image.sample_distorted_bounding_box(
tf.shape(img_data), bounding_boxes=boxes, min_object_covered=0.1)
#通过标准框可视化随机截取得到的图像。
batched = tf.expand_dims(tf.image.convert_image_dtype(img_data, tf.float32), 0)
image_with_box = tf.image.draw_bounding_boxes(batched, bbox_for_draw)
#截取随机出来的图像,因为算法带有随机性,每次得到的结果会有所不同
distorted_iamge = tf.slice(img_data, begin, size)
plt.figure(1)
image_with_box = tf.reduce_sum(image_with_box, 0) # 这里显示的时候需要进行降维处理
plt.imshow(image_with_box.eval())
plt.figure(2)
plt.imshow(distorted_iamge.eval())
plt.show()