在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实现的Excel文件读写类
Jul 30 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
python 容器总结整理
Apr 04 Python
python 二分查找和快速排序实例详解
Oct 13 Python
windows下python 3.6.4安装配置图文教程
Aug 21 Python
python使用knn实现特征向量分类
Dec 26 Python
Python图像处理PIL各模块详细介绍(推荐)
Jul 17 Python
Python 内置函数globals()和locals()对比详解
Dec 23 Python
Python获取、格式化当前时间日期的方法
Feb 10 Python
python numpy库np.percentile用法说明
Jun 08 Python
pycharm 关闭search everywhere的解决操作
Jan 15 Python
python自动化测试通过日志3分钟定位bug
Nov 20 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
《APMServ 5.1.2》使用图解
2006/10/23 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
CI框架中zip类应用示例
2014/06/17 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
仅IE不支持setTimeout/setInterval函数的第三个以上参数
2011/05/25 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
python操作MongoDB基础知识
2013/11/01 Python
实例Python处理XML文件的方法
2015/08/31 Python
全面理解Python中self的用法
2016/06/04 Python
python使用tkinter实现简单计算器
2018/01/30 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
python实现桌面气泡提示功能
2019/07/29 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
详解Python在使用JSON时需要注意的编码问题
2019/12/06 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
金融专业个人求职信
2013/09/22 职场文书
会计自我鉴定范文
2013/10/06 职场文书
申报职称专业技术个人的自我评价
2013/12/12 职场文书
工作会议主持词
2014/03/17 职场文书
经济管理专业求职信
2014/06/09 职场文书
宣传活动总结范文
2014/07/01 职场文书
2014年领班工作总结
2014/11/25 职场文书
毕业生个人自荐书
2015/03/05 职场文书
运动会新闻报道稿
2015/07/22 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书