在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 29 Python
python追加元素到列表的方法
Jul 28 Python
详解python实现线程安全的单例模式
Mar 05 Python
python实现log日志的示例代码
Apr 28 Python
python爬虫之模拟登陆csdn的实例代码
May 18 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 Python
selenium+python截图不成功的解决方法
Jan 30 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
Jan 18 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 Python
python 实现 hive中类似 lateral view explode的功能示例
May 18 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
May 24 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
Aug 22 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 身份证号验证函数
2009/05/07 PHP
用PHP实现递归循环每一个目录
2010/08/08 PHP
php将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
利用Angular.js编写公共提示模块的方法教程
2017/05/28 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
python基础教程之自定义函数介绍
2014/08/29 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
Python yield与实现方法代码分析
2018/02/06 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
pytorch:torch.mm()和torch.matmul()的使用
2019/12/27 Python
解决jupyter notebook显示不全出现框框或者乱码问题
2020/04/09 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
教育专业个人求职信
2013/12/02 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
python实现双向链表原理
2022/05/25 Python