【Tensorflow】图解tf.image.extract_patches的用法--提取图片特定区域

简介: 文章通过图解和示例详细解释了TensorFlow中tf.image.extract_patches函数的用法,展示了如何使用该函数从图像中提取特定区域或分割图像为多个子图像。

1 引言

(1)作用
提取图片中的一小块区域,也可以用于分割图片为多个子图片。类似卷积核提取特征,但不一样
(2)用法

tf.image.extract_patches(
    images,
    sizes,
    strides,
    rates,
    padding,
    name=None
)

参数:

  • images:图像矩阵,形状必须是[batch, in_rows, in_cols, depth]
  • sizes:patche大小,形状必须是:[1, size_rows, size_cols, 1]
  • strides:patche移动步长,形状必须是[1, stride_rows, stride_cols, 1]
  • rates:有些复杂,形状必须是[1, rate_rows, rate_cols, 1],表示隔几个像素点,取一个像素点,直到满足 sizes 。
  • padding:“VALID”或者“SAME”:
  • “VALID”:表示所取的patch区域必须完全包含在原始图像中.
  • "SAME"表示可以取超出原始图像的部分,这一部分进行0填充。
  • 返回值:返回4维tensor,数据类型与输入的 images 类型相同

2 图解

2.1 Demo1

# 生成一张10*10 的图片矩阵,数值范围是1-100
arr=tf.reshape(tf.range(1,101),[10,10])
print(arr.numpy())
print("-"*50)
arr=tf.reshape(arr,[1,10,10,1])
# 提取指定区域
res=tf.image.extract_patches(
                images=arr, 
                sizes=[1, 3, 3, 1], 
                strides=[1, 5, 5, 1], 
                rates=[1, 1, 1, 1], 
                padding='VALID')
print(res.numpy())

解析

  • sizes=[1, 3, 3, 1]:patche大小是3x3,表示要提取的区域是3_3 的矩阵,在图中对应红色3_3的方框
  • strides=[1, 5, 5, 1]:patche移动步长5x5。先是水平移动5个,水平移动到终点后,在垂直移动5个。在图中对应左方框水平移动了5步。垂直向下移动了5步
  • rates=[1, 1, 1, 1]:表示在红色方框中提取的步长是1 ,说白了就是每个元素都要提取。该参数决定了红色方框的大小。

1.png

2.2 Demo2

# 生成10*10的图片矩阵,数值范围是1-100
arr=tf.reshape(tf.range(1,101),[10,10])
print(arr.numpy())
print("-"*50)
arr=tf.reshape(arr,[1,10,10,1])
# 提取指定区域
res=tf.image.extract_patches(
                    images=arr, 
                    sizes=[1, 3, 3, 1], 
                    strides=[1, 5, 5, 1], 
                    rates=[1, 2, 2, 1], 
                    padding='VALID')
print(res.numpy())

2.png


解析
  • sizes=[1, 3, 3, 1]:patch大小是3x3,表示要提取的区域是3*3 的矩阵
  • strides=[1, 5, 5, 1]:patche移动步长5x5。先是水平移动5个,水平移动到终点后,在垂直移动5个
  • rates=[1, 2, 2, 1]:表示patche中的每个元素间隔1个提取1个,也就是说sizes变成5。
目录
相关文章
|
2月前
|
TensorFlow 算法框架/工具
Tensorflow学习笔记(二):各种tf类型的函数用法集合
这篇文章总结了TensorFlow中各种函数的用法,包括创建张量、设备管理、数据类型转换、随机数生成等基础知识。
42 0
|
TensorFlow 算法框架/工具 异构计算
Tensorflow基本用法
Tensorflow基本用法
106 0
|
机器学习/深度学习 TensorFlow API
构建自定义机器学习模型:TensorFlow的高级用法
在机器学习领域,TensorFlow已经成为最受欢迎和广泛使用的开源框架之一。它提供了丰富的功能和灵活性,使开发者能够构建各种复杂的机器学习模型。在本文中,我们将深入探讨TensorFlow的高级用法,重点介绍如何构建自定义机器学习模型。
228 0
|
搜索推荐 TensorFlow 算法框架/工具
基于tensorflow和flask的本地图片库web图片搜索引擎
基于tensorflow和flask的本地图片库web图片搜索引擎
147 0
基于tensorflow和flask的本地图片库web图片搜索引擎
|
数据建模 TensorFlow API
《30天吃掉那只 TensorFlow2.0》 1-2 图片数据建模流程范例 (cifar2图片分类问题)
《30天吃掉那只 TensorFlow2.0》 1-2 图片数据建模流程范例 (cifar2图片分类问题)
《30天吃掉那只 TensorFlow2.0》 1-2 图片数据建模流程范例 (cifar2图片分类问题)
|
索引
tensorflow2.0的一些高级函数用法
tensorflow2.0的一些高级函数用法
106 0
tensorflow2.0的一些高级函数用法
|
机器学习/深度学习 移动开发 API
tensorflow2.0图片分类实战---对fashion-mnist数据集分类
tensorflow2.0图片分类实战---对fashion-mnist数据集分类
253 0
tensorflow2.0图片分类实战---对fashion-mnist数据集分类
|
机器学习/深度学习 缓存 TensorFlow
TF:tensorflow框架中常用函数介绍—tf.Variable()和tf.get_variable()用法及其区别
TF:tensorflow框架中常用函数介绍—tf.Variable()和tf.get_variable()用法及其区别
|
TensorFlow 算法框架/工具
TensorFlow教程(3)-embedding_lookup用法
TensorFlow教程(3)-embedding_lookup用法
275 0
|
TensorFlow 算法框架/工具
TF学习——TF数据读取:TensorFlow中数据读这三张图片的5个epoch +把读取的结果重新存到read 文件夹中
TF学习——TF数据读取:TensorFlow中数据读这三张图片的5个epoch +把读取的结果重新存到read 文件夹中
TF学习——TF数据读取:TensorFlow中数据读这三张图片的5个epoch +把读取的结果重新存到read 文件夹中