在使用GANs生成图片时,由于边缘模糊,所以想单独提取边缘信息作为额外输入。
由于是在训练过程中使用,所以不适合用opencv提取。Tensorflow中自带了Sobel算子边缘提取函数
tf.image.sobel_edges
下面展示一下使用效果
image = tf.image.sobel_edges(targets)
image = image**2
image = tf.math.reduce_sum(image, axis=-1)
binary_image = tf.image.rgb_to_grayscale(image) # 转换灰度图,用于转二值图
binary_image = tf.cast(binary_image>0, dtype=tf.float32)