tensorflow入门之---------图像大小调整
在深度学习的过程中,往往对输入图像的大小需要进行一个调整,特别是对于拥有全连接层的神经网络,因为全连接层的节点数是固定的。因此,为了满足全连接层的一个输入的要求,我们可以利用tensorflow自带的函数来进行图像大小的调整。
总体来说一共有三个函数。原始图像大小为1242*375.
一、tf.image.resize_images(image,shape,method)
一共有三个参数,第一个是原始图像,第二个是重采样目标影像大小,第三个是重采样的方法。双线性插值算法(Bilinear interpolation);Method取值为:0;最近邻居法(Nearest neighbor interpolation);Method取值为:1;双三次插值法(Bicubic interpolation);Method取值为:2;
这个函数是通过插值的方式实现图像的大小变换,包括最近邻插值,双线性插值,双三次插值等。
![](/assets/blank.gif)
![](/assets/blank.gif)
二、tf.image.resize_image_with_crop_or_pad(image,IMG_W,IMG_H)
一共有三个参数,分别是原始图像,目标图像的宽,目标图像的高。
这个函数不是通过插值改变图像大小,而是直接通过裁剪和填充。这么做的好处就是不会让图像看上去又明显的畸变,但是会使得原始图像不完整。
![](/assets/blank.gif)
![](/assets/blank.gif)
三、tf.image.central_crop(image,rate)
这个函数一共有两个参数,一个是原始图像,另一个是原始图像调整的比例。注意,这种算法rate只能在0-1之间,否则会出现错误。
raise ValueError('central_fraction must be within (0, 1]')ValueError: central_fraction must be within (0, 1]
这个函数是对原始图像整体的比例进行调整。实际上,有点类似于第二个函数,在缩小的时候实际上是采用了类似于裁剪的方法,图片中的部分物体是被裁剪掉的。
所有实验的源代码如下:
# -*- coding: utf-8 -*-
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt#这个可以用来
"""
Created on Thu Jul 19 15:42:38 2018@author: Lenovo
"""
IMG_W1 = 208 # resize图像,太大的话训练时间久
IMG_H1 = 208
IMG_W2=2000
IMG_H2=2000
BATCH_SIZE = 2picdir1 = 'E:/Study/研究生文档/密集匹配程序/train/image_2/000000_10.png'image_raw=tf.gfile.GFile(picdir1,'rb').read()
image_raw = tf.image.decode_png(image_raw)with tf.Session() as sess:plt.imshow(image_raw.eval())plt.show()#第一种方法,采用resize函数,采用双线性插值img_resized1 = tf.image.resize_images(image_raw, [100,800],method=0) img_resized1 = np.asarray(img_resized1.eval(),dtype='uint8')plt.imshow(img_resized1)plt.show()img_resized1 = tf.image.resize_images(image_raw, [900,2700],method=0) img_resized1 = np.asarray(img_resized1.eval(),dtype='uint8')plt.imshow(img_resized1)plt.show()croped = tf.image.resize_image_with_crop_or_pad(image_raw,300,300) #目标图像大小<原始图像的大小,则截取原始图像的居中部分,padded = tf.image.resize_image_with_crop_or_pad(image_raw,1500,1500) #目标图像大小>原始图像的大小,则会在原始图像的四周填充全为0背景plt.imshow(croped.eval())plt.show()plt.imshow(padded.eval())plt.show()central_cropped = tf.image.central_crop(image_raw,0.25) #按照比例裁剪图像,第二个参数为调整比例,比例取值[0,1]plt.imshow(central_cropped.eval())plt.show()
总结,这次主要试验了三种不同的图像大小调整的方式。有些方式会产生形变,但内容中的物体不会丢失。有些方法虽然不会产生形变,但是内容中的物体会丢失。所以应该根据自己的需要使用。
参考博客:tensorflow改变图像大小
tensorflow入门之---------图像大小调整相关推荐
- Python+Opencv图像处理新手入门教程(二):颜色空间转换,图像大小调整,灰度直方图
一步一步来吧 上一节:Python+Opencv图像处理新手入门教程(一):介绍,安装与起步 1.什么是图像 对于计算机而言,图像的本质是一个由像素点构成的矩阵. 例如我们用肉眼很容易分辨一辆汽车的后 ...
- TensorFlow学习笔记之图像大小调整(最全可运行的代码)
一.图像编码处理 在之前的章节中提到一张RGBRGBRGB色彩模式的图像可以看成一个三维矩阵,矩阵中的每一个数表示了图像上不同位置,不同颜色的亮度.然而图像在存储时并不是直接记录这些矩阵中的数字,而是 ...
- 使用TensorFlow进行常用的图像处理-图像转为矩阵以及图像大小调整
图像编码处理 将图像转为一个三维矩阵,并使用三维矩阵形成一个图像: import tensorflow as tf import matplotlib.pyplot as plt# 读取原始图像数据 ...
- 创建用于图像大小调整和裁剪器保持纵横比的ASP.NET控件
目录 总览 图像尺寸调整算法 如何在网页上使用控件? 如何从控件中获取上传的图像? 源代码 参考文献 总览 我们在图像大小调整和裁剪方面存在长期问题.我们的问题是,如果我们在服务器端调整大小,图像质量 ...
- php 修改图像大小,PHP图像大小调整
据我所知,您无法在上传图像之前调整图像大小. (我可能错了!)但是,当您上传图像时,它会进入一个临时文件.您可以调整临时图像的大小,并将调整后的图像复制到其最终目标. 因为(似乎)你想保持宽度不变,所 ...
- 调整图像大小调整图片大小
B = imresize(A,scale) B = imresize(A,[numrows numcols]) [Y,newmap] = imresize(X,map,___) ___ = imres ...
- 接缝雕刻算法:一种看似不可能的图像大小调整方法
作者|Samarendra Chandan Bindu Dash 编译|Flin 来源|analyticsvidhya 介绍 在本文中,我们将深入研究一种有趣的算法,称为"接缝雕刻" ...
- Matlab的SUBPLOT的图像大小调整
解决方法: (1)subplot的子窗口都是固定的,其设置是内置的默认值,你可以通过axes函数来重新规定子窗口的大小和位置.如: axes('position',[.1 .1 .8 .6]) ...
- php 降低图像大小,在PHP中调整图像大小
我想写一些PHP代码,自动将通过表单上传的任何图像大小调整为147x147px,但我不知道如何去做它(我是一个相对PHP新手). 到目前为止,我已经成功上传图片,文件类型被识别和名称清理,但我想添加r ...
最新文章
- linux lvm 逻辑卷 创建 扩容 缩减 删除
- 我对编程中常见名词的理解
- 树莓派linux系统识别u盘启动,树莓派Raspberry Pi实战之命令行下实现USB存储设备自动挂载...
- linux centos7修改默认启动的内核(升级及切换内核)
- hbase查询_【从零单排HBase】HBase高性能查询揭秘
- 自动化测试之一----基本概念
- java argv_argv的编码是什么?
- Python查找两个word中的相同内容
- T-SQL多个小计+合计,分类汇总
- 发力“创新宇宙”,酒店集团如何破局商业革新?
- DM达梦DSC共享集群+DW(单机)
- PHP删除多选checkbox,php一次性删除前台checkbox多选内容的简单示例
- python去马赛克
- 电脑文件丢失你都是怎么找回来的?
- ocaml_管理OCaml软件包的好工具
- 物联网卡无法激活使用的原因
- 使命召唤19发布时间曝光 确定将于10月28号发布
- 速速收藏——程序员接私活的七大平台
- linux卸载teamviewer,ubuntu 16.04 desktop + server LTS - TeamViewer 软件彻底卸载
- 热点解答:nmn抗衰老安全吗,nmn最安全的品牌是什么
热门文章
- 如何做好软文营销?这3个关键点要记好
- BIOS的二十四个解答
- 学习笔记 更相损减术
- 小米6系统 Android版本,小米6推送MIUI 10.4.2稳定版:正式升级安卓9.0!
- 笔记本散热知识你知多少
- CISA Cert Prep: 2 Information Technology Governance and Management for IS Auditors CISA证书准备2:IS审计员的信
- 手机自带计算机删了怎么恢复出厂设置,还原出厂设置会怎样_电脑如何恢复出厂设置...
- 华为荣耀10是Android,华为、荣耀公布升级安卓10.0名单,来看看有没有你的机型吧...
- iOS输入法—基于XCTest框架的异步测试
- 【文献翻译】Web应用防火墙:网络安全模型和配置​​​​​​​-Web Application Firewall: Network Security Models and Configuration