Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 张量流中的等效填充多边形_Python_Opencv_Tensorflow - Fatal编程技术网

Python 张量流中的等效填充多边形

Python 张量流中的等效填充多边形,python,opencv,tensorflow,Python,Opencv,Tensorflow,Tensorflow API是否有一个与OpenCV等效的函数,或者另一个可以在黑色背景上绘制填充边界框的函数。使用tf.bitwise\u和仅保留原始图像中的填充框。我已经试过了,但是我需要用这个函数在我的框上迭代,我不能,因为形状是(无,4) 编辑: 这是我代码的一部分 res = tf.gather(boxes,true_indices) #My boxes shape (None,4) back = tf.get_variable("bac

Tensorflow API是否有一个与OpenCV等效的函数,或者另一个可以在黑色背景上绘制填充边界框的函数。使用
tf.bitwise\u和
仅保留原始图像中的填充框。我已经试过了,但是我需要用这个函数在我的框上迭代,我不能,因为形状是
(无,4)

编辑: 这是我代码的一部分

            res = tf.gather(boxes,true_indices) #My boxes shape (None,4)
            back = tf.get_variable("back", shape=image.shape, dtype=tf.uint8,
                                initializer=tf.zeros_initializer(), trainable=False) #Represent background

                def my_func(x):
                    casted_boxes = tf.cast(x, dtype=tf.int32)
                    casted_img = tf.image.convert_image_dtype(image, dtype=tf.uint8)
                    cropped_image = tf.image.crop_to_bounding_box(casted_img, casted_boxes[1],casted_boxes[0],
                                                              casted_boxes[3] - casted_boxes[1], casted_boxes[2] - casted_boxes[0])
                    return  back[casted_boxes[0]:, casted_boxes[1]:, :].assign(cropped_image) #Here I get a problem
            r = tf.map_fn(my_func, res, tf.uint8)
通过上面的代码,我得到:
AttributeError:“Operation”对象没有属性“\u c\u op”

我不确定我是否完全理解了你的意思,所以如果我没有领会你的意思,请澄清

我相信您需要使用
tf.map\fn
在多个框上执行操作
tf.map_fn
将对数据中的每个元素应用一组tensorflow操作(通过将它们返回为映射函数来定义)

在本例中,边界框的形状为
[None,4]
。在运行时,它们会有一些形状,例如,如果您有42个边界框,则该形状将是
[42,4]


tf.map\u fn
在这种情况下,将沿着42个边界框的第一个维度解压边界框,并将从map函数返回的任何操作应用于每个边界框,并返回连接结果。

请发布您的代码。为什么tf会包括图像绘制函数。。?为什么不直接使用OpenCV函数呢?因为图像的形状在运行时之前设置为“无”,因为我使用了Dataset API和TFRecords。我尝试使用map_fn,但在分配次张量(参见我的编辑)时出现错误,我无法立即看到如何修复它,但是我相信在
map\u fn
中使用变量是问题的根源。您应该使用操作生成图像,而不是使用
my\u func
中的变量。毕竟,该功能将并行运行。