注意:
sobel算子不保证结果在0-255,需要做一次归一化处理,再乘以255
输出的数据shape与图像的shape不一样,需要一次转化
效果


代码
import matplotlib.pyplot as plt # plt 用于显示图片
import matplotlib.image as mpimg # mpimg 用于读取图片
import numpy as np
import tensorflow as tf
myimg = mpimg.imread('test.jpg') # 读取和代码处于同一目录下的图片
plt.imshow(myimg) # 显示图片
plt.axis('off') # 不显示坐标轴
plt.show()
print(myimg.shape)
full = np.reshape(myimg, [1, *myimg.shape])
inputfull = tf.Variable(tf.constant(1.0, shape=[1, *myimg.shape]))
filter = tf.Variable(tf.constant([[-1.0, -1.0, -1.0], [0, 0, 0], [1.0, 1.

本文展示了如何使用TensorFlow在Java中实现Sobel算子来提取图像的轮廓。首先,通过matplotlib库读取并显示图像,然后利用TensorFlow进行卷积操作,将Sobel算子应用到图像上。经过归一化处理后,转换为0-255范围的uint8类型,最后展示处理后的图像轮廓。

2479

被折叠的 条评论
为什么被折叠?



