在python2.7中用numpy.reshape 对图像进行切割的方法


Posted in Python onDecember 05, 2018

遇到这么个需求:把图片按照定义的patchsize切块,然后按照z轴顺序叠放小块,如下图(仅考虑灰度图像)

在python2.7中用numpy.reshape 对图像进行切割的方法

图片im,设size为(h,w),patchsize为(ph,pw),则处理后大小(为简化描述,假设可以整除)为(ph,pw,w*h/ph/pw)。

为简化描述,后面用h=300,w=300,ph=100,pw=100 为例,即处理后d=9。

numpy.reshape 的文档:点击打开链接

特别注意第三个参数 order,其默认取值为 order=‘C',表示最后一个维度的元素在reshape时优先重排位置。而order=‘F'时则相反,第一个维度的元素优先重排位置。

例子如下,得到的im2就是这么一个tensor

import cv2
import numpy as np
 
im=cv2.imread('animal007.jpg',cv2.IMREAD_GRAYSCALE)
h= 300
w= 300
patchsize=100
d=h*w/patchsize/patchsize
print d
 
#crop the image to h x w
im=np.array(im[: h ,: w ])
 
#this gets wrong answer
im_wrong1=im.reshape((patchsize,patchsize,-1))
im_wrong7= im.reshape((patchsize,patchsize,-1),order='F')
im_wrong2=im.reshape(( h ,patchsize,-1)).reshape((patchsize,patchsize,-1))
im_wrong3=im.reshape((patchsize, w ,-1)).reshape((patchsize,patchsize,-1))
im_wrong4= im.reshape(( h ,patchsize,-1),order='F').reshape((patchsize,patchsize,-1))
im_wrong5= im.reshape(( h ,patchsize,-1),order='F').reshape((patchsize,patchsize,-1),order='F')
im_wrong6= im.reshape((patchsize, w ,-1),order='F').reshape((patchsize,patchsize,-1),order='F')
 
#this only works for h=w, i dont know why 
im2= im.reshape((patchsize, w ,-1),order='F').reshape((patchsize,patchsize,-1))
im2_0=im2[:,:,no]
cv2.imwrite('im2_0.jpg',im2_0)
 
no=4;
imw=im_wrong1[:,:,no]
cv2.imwrite('imw1_0.jpg',imw)
imw=im_wrong2[:,:,no]
cv2.imwrite('imw2_0.jpg',imw)
imw=im_wrong3[:,:,no]
cv2.imwrite('imw3_0.jpg',imw)
imw=im_wrong4[:,:,no]
cv2.imwrite('imw4_0.jpg',imw)
imw=im_wrong5[:,:,no]
cv2.imwrite('imw5_0.jpg',imw)
imw=im_wrong6[:,:,no]
cv2.imwrite('imw6_0.jpg',imw)
imw=im_wrong7[:,:,no]
cv2.imwrite('imw7_0.jpg',imw)

以上这篇在python2.7中用numpy.reshape 对图像进行切割的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现批量转换文件编码(批转换编码示例)
Jan 23 Python
python处理cookie详解
Feb 07 Python
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
Jul 09 Python
浅谈Python 中整型对象的存储问题
May 16 Python
使用pandas read_table读取csv文件的方法
Jul 04 Python
Python判断中文字符串是否相等的实例
Jul 06 Python
OpenCV+python手势识别框架和实例讲解
Aug 03 Python
python 随机生成10位数密码的实现代码
Jun 27 Python
python3字符串操作总结
Jul 24 Python
解析python实现Lasso回归
Sep 11 Python
用Python绘制漫步图实例讲解
Feb 26 Python
python ansible自动化运维工具执行流程
Jun 24 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
Dec 05 #Python
python3 实现对图片进行局部切割的方法
Dec 05 #Python
python中强大的format函数实例详解
Dec 05 #Python
python3+opencv3识别图片中的物体并截取的方法
Dec 05 #Python
解决Python3.5+OpenCV3.2读取图像的问题
Dec 05 #Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
Dec 05 #Python
对python opencv 添加文字 cv2.putText 的各参数介绍
Dec 05 #Python
You might like
PHP对字符串的递增运算分析
2010/08/08 PHP
PHP页面中文乱码分析
2013/10/29 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
PHP中is_file()函数使用指南
2015/05/08 PHP
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
JS原型、原型链深入理解
2016/02/27 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
vue轮播图插件vue-awesome-swiper
2017/11/27 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
React实现全选功能
2020/08/25 Javascript
python使用cookielib库示例分享
2014/03/03 Python
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
Python动态加载模块的3种方法
2014/11/22 Python
Python中subprocess模块用法实例详解
2015/05/20 Python
基于numpy.random.randn()与rand()的区别详解
2018/04/17 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
python爬取微信公众号文章
2018/08/31 Python
vue常用指令代码实例总结
2020/03/16 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
2020/06/14 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
python函数超时自动退出的实操方法
2020/12/28 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
三星美国官网:Samsung美国
2017/02/06 全球购物
如何客观的进行自我评价
2013/12/17 职场文书
车辆转让协议书
2014/04/15 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
有限责任公司股东合作协议书范本
2014/10/30 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL