在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登录Gmail并发送Gmail邮件的教程
Apr 17 Python
python实现ping的方法
Jul 06 Python
在Django的视图中使用form对象的方法
Jul 18 Python
python魔法方法-属性转换和类的表示详解
Jul 22 Python
Python3 Post登录并且保存cookie登录其他页面的方法
Dec 28 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
Apr 01 Python
Python如何基于smtplib发不同格式的邮件
Dec 30 Python
Python读写csv文件流程及异常解决
Oct 20 Python
Python基于execjs运行js过程解析
Nov 27 Python
解决TensorFlow训练模型及保存数量限制的问题
Mar 03 Python
Python OpenCV快速入门教程
Apr 17 Python
Python中with上下文管理协议的作用及用法
Mar 18 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
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
php curl的深入解析
2013/06/02 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
让iframe自适应高度(支持XHTML,支持FF)
2007/07/24 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
2014/02/24 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
详解小白之KMP算法及python实现
2019/04/04 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
Pytorch之contiguous的用法
2019/12/31 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
Html5剪切板功能的实现代码
2018/06/29 HTML / CSS
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
高中的职业生涯规划书
2013/12/28 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
工作推荐信模板
2015/03/25 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
上课迟到检讨书
2015/05/06 职场文书
工作简报范文
2015/07/21 职场文书
小学副班长竞选稿
2015/11/21 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书