在图像中添加标注框有着很大的用处,在一些用于图像识别的数据集中,图像中某些需要关注的特征通常会被标注框圈出来,或者在一些图像识别问题中把模型要识别出的物体用标注框标注一下,tensorflow中有提供了一个函数供我们使用:image.draw_bounding_boxes()函数用于在图像中加入矩行标注框。以下的代码为我们提供了一个示例:
在使用image.draw_bounding_boxes()函数时需要注意,该函数要求图像矩阵中的数据为实数型,并且要求输入是一个batch的数据,也就是多张图片组成的四维矩阵。所以通过expand_dims()函数在解码之后的图像矩阵上多添加一维,同时通过convert_image_dtype()函数把数据转换为实数型。
运行上面的代码,能够为图像添加两个标注框,得到的结果如下图所示,从图中可以看到,大的标注框为我们标注了图像的整体,小的标注框则只是标注了图像中的重要部位,为了使得图片看的更加清楚,可以适当的把图片缩小一点(通过image.resize_images()函数)。
此外,tensorflow还提供了image.sample_distorted_bounding_box()函数,这个函数会为图像生成单个随机变形的边界框,这样一来我们可以进行随机位置边框的绘制。image.sample_distorted_bounding_box()函数