正文
Scikit-Image建立在Scikit-Learn机器学习库的基础上的扩展功能,包括更高级的图像处理能力。所以如果已经在使用Scikit进行ML,那么可以考虑使用这个库。
它提供了一套完整的图像处理算法。它支持图像分割、几何变换、色彩空间操作和过滤。
与许多其他库不同,Scikit-Image支持多维图像,这对于涉及视频或医学成像的任务是很有帮助的。Scikit-Image与其他Python科学库(如NumPy和SciPy)无缝集成。
from skimage import data, io, filters
image = data.coins()
# ... or any other NumPy array!
edges = filters.sobel(image)
io.imshow(edges)
io.show()
TensorFlow Image
TensorFlow Image是TensorFlow的一个模块,它支持图像解码、编码、裁剪、调整大小和转换。还可以利用TensorFlow的GPU支持,为更大的数据集提供更快的图像处理。
也就是说如果你使用TF,那么可以使用它来作为训练Pipline的一部分。
使用 Keras 效用函数加载数据:tf.keras.utils.image_dataset_from_directory 效用函数从磁盘加载图像。
创建数据集,为加载器定义一些参数:
batch_size = 32
img_height = 180
img_width = 180
开发模型时,最好使用验证拆分。您将使用 80% 的图像进行训练,20% 的图像进行验证。
train_ds = tf.keras.utils.image_dataset_from_directory(
data_dir,
validation_split=0.2,
subset="training",
seed=123,
image_size=(img_height, img_width),
batch_size=batch_size)
PyTorch Vision
与TensorFlow Image类似,PyTorch Vision是PyTorch生态系统的一部分,主要用于与图像处理相关的机器学习任务。
import torchvision
video_path = "path to a test video"
reader = torchvision.io.VideoReader(video_path, "video")
reader_md = reader.get_metadata()
print(reader_md["video"]["fps"])
video.set_current_stream("video:0")
SimpleCV
SimpleCV建立在OpenCV、PIL(Python Imaging Library)和NumPy之上,为用户提供了一组简单而强大的函数和工具,用于加载、处理和分析图像。
SimpleCV的设计目标是使计算机视觉技术对于初学者和非专业人士也能更加可靠和易于使用。它提供了一个简单的API,隐藏了底层的复杂性,使用户能够快速实现常见的计算机视觉任务。
但是目前官方维护也较少,所以这个项目很有可能会夭折。
import SimpleCV
camera = SimpleCV.Camera()
image = camera.getImage()
image.show()
ImageIO