如何用TensorFlow图像处理函数裁剪图像?

当给定大量不同质量的训练数据时,CNN往往能够很好地工作。

–图像能够通过可视化的方式,传达复杂场景所蕴含的某种目标主题。

–在Stanford Dogs数据集中,重要的是图像能够以可视化的方式,突出图片中狗的重要性。

–一幅狗位于画面中心的图像,会被认为比狗作为背景的图像更有价值。

并非所有数据集都拥有最有价值的图像。下面所示的两幅图像,按照假设,该数据集本应突出不同的狗的品种

左图突出的是一条典型的墨西哥无毛犬的重要属性,而右图是两个参加聚会的人,在逗一条墨西哥无毛犬。右图中充斥了大量的无关信息,这可能会导致所训练的CNN模型,对参加聚会的人的面部信息,更为关注。类似这样的图像中可能会包含狗,可对其进行操作,使狗而非人,成为真正被突出的对象。下面总结那些对训练CNN有用的图像处理方法。

裁剪会将图像中的某些区域移除,将其中的信息完全丢弃。裁剪与tf.slice类似,后者是将一个张量中的一部分,从完整的张量中移除。当沿某个维度存在多余的输入时,为CNN对输入图像进行裁剪便是十分有用的。

例如,为减少输入的尺寸,可对狗位于图像中心的图片进行裁剪。

sess.run(tf.image.central_crop(image, 0.1))

执行上面的代码后,可得到输出:

array([[[ 3, 108, 233]]], dtype=uint8)

这段示例代码利用了tf.image.central_crop,将图像中10%的区域抠出,并将其返回。

–该方法总是会基于所使用的图像的中心返回结果。

–裁剪通常在预处理阶段使用,但在训练阶段,若背景也有用时,它也可派上用场。

–当背景有用时,可随机化裁剪区域起始位置,到图像中心的偏移量来实现裁剪。

这个裁剪方法仅可接收实值输入

real_image= sess.run(image)

bounding_crop= tf.image.crop_to_bounding_box(

real_image, offset_height=0, offset_width=0, target_height=2, target_width=1)

sess.run(bounding_crop)

执行上述代码,可得到输出:

array([[[ 0, 0, 0]],[[ 0, 191, 0]]], dtype=uint8)

为从位于(0,0)的图像的左上角像素开始,对图像裁剪,示例代码使用了tf.image.crop_to_bounding_box

目前,该函数只能接收一个具有确定形状的张量。因此,输入图像需要事先在数据流图中运行。

时间: 2024-08-28 18:35:43

如何用TensorFlow图像处理函数裁剪图像?的相关文章

tensorflow图像处理函数(1)

1.tensorflow中对jpeg格式图像的编码/解码函数: import matplotlib.pyplot as plt import tensorflow as tf image_raw_data=tf.gfile.FastGFile('/Users/jk/Downloads/timg.jpeg','rb').read() with tf.Session() as sess: img_data=tf.image.decode_jpeg(image_raw_data) #通过tf.img.

吴裕雄 python 神经网络——TensorFlow 图像处理函数

import numpy as np import tensorflow as tf import matplotlib.pyplot as plt image_raw_data = tf.gfile.FastGFile("F:\\TensorFlowGoogle\\201806-github\\datasets\\cat.jpg",'rb').read() with tf.Session() as sess: img_data = tf.image.decode_jpeg(image

图像处理大型科普——图像直方图

图像处理大型科普--图像直方图 偶尔跟在浙大读研的湖大一姐谈起轮廓识别,她正在做一个能把衣服分类成不同款式的应用,衣服平摊好,然后用手机一扫,马上就能告诉你这是T-SHIRT还是裙子,什么?你敢说这玩意鸡肋?T-SHIRT和裙子当然容易分别,但那些 莲蓬裙.连衣裙.连体裙.半截裙.背带裙.连体裤.热裤.短裤.超短裤.齐X裤.打底裤.靴裤.吊带裤你真的分得清楚么? 分不清的先去一旁罚歌一首 继续说正事 学姐大概是这么做的,先灰度,然后获取高频分量,然后根据高频分量二值化,然后获取轮廓的点集,然后通

Win8 Metro(C#)数字图像处理--2.52图像K均值聚类

原文:Win8 Metro(C#)数字图像处理--2.52图像K均值聚类 ?? [函数名称] ??图像KMeans聚类??????KMeansCluster(WriteableBitmap?src,int?k) /// <summary> /// KMeans Cluster process. /// </summary> /// <param name="src">The source image.</param> /// <pa

Win8 Metro(C#)数字图像处理--2.51图像统计滤波算法

原文:Win8 Metro(C#)数字图像处理--2.51图像统计滤波算法 ?? [函数名称] ??图像统计滤波???WriteableBitmap?StatisticalFilter(WriteableBitmap?src,double?T) /// <summary> /// Statistical filtering process. /// </summary> /// <param name="src">The source image.&

图像处理之裁剪(Resize)

1 图像裁剪 在实际工作中,经常需要根据研究工作要求对图像进行裁剪(Subset Image),按照实际图像分幅裁剪的过程,可以将图像分幅裁剪分为两种类型:规则分幅裁剪(Rectangle Subset),不规则分幅裁剪(Pdygon Subset). 规则分幅裁剪:裁剪图像的边界范围是一个矩形,通过左上角和右下角两点的坐标,就可以确定图像的裁剪位置,整个裁剪过程比较简单. 不规则分幅裁剪:裁剪图像的边界范围是任意多边形,无法通过左上角和右下角两点的坐标确定裁减位置,而必须事先生成一个完整的闭合

『TensorFlow』函数查询列表_神经网络相关

神经网络(Neural Network) 激活函数(Activation Functions) 操作 描述 tf.nn.relu(features, name=None) 整流函数:max(features, 0) tf.nn.relu6(features, name=None) 以6为阈值的整流函数:min(max(features, 0), 6) tf.nn.elu(features, name=None) elu函数,exp(features) - 1 if < 0,否则featuresE

从原理到代码:大牛教你如何用 TensorFlow 亲手搭建一套图像识别模块 | AI 研习社

从原理到代码:大牛教你如何用 TensorFlow 亲手搭建一套图像识别模块 | AI 研习社 PPT链接: https://pan.baidu.com/s/1i5Jrr1N 视频链接: https://v.qq.com/x/page/n0386utnrb0.html?start=492

iOS 图像处理-剪裁图像

解决问题:按照某一长宽比例,剪裁图片的上部和下部,保留中间的内容.当然也可以自定义需要剪裁留下的区域 前提:需要添加Framework:CoreGraphics.framework 代码: - (UIImage*) crop:(UIImage*)theImage{ // Get size of current image CGSize size = [theImage size]; // Create rectangle that represents a cropped image CGFlo