在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 相关文章推荐
videocapture库制作python视频高速传输程序
Dec 23 Python
Python使用BeautifulSoup库解析HTML基本使用教程
Mar 31 Python
Python中模块string.py详解
Mar 12 Python
Python之reload流程实例代码解析
Jan 29 Python
python numpy 显示图像阵列的实例
Jul 02 Python
Django项目开发中cookies和session的常用操作分析
Jul 03 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
Aug 21 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
Sep 16 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
Dec 04 Python
pytorch查看模型weight与grad方式
Jun 24 Python
selenium与xpath之获取指定位置的元素的实现
Jan 26 Python
Python max函数中key的用法及原理解析
Jun 26 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
关于页面优化和伪静态
2009/10/11 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
浅谈PHP表单提交(POST&GET&URL编/解码)
2017/04/03 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
javascript 支持ie和firefox杰奇翻页函数
2008/07/22 Javascript
Javascript 解疑
2009/11/11 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
使用基于Python的Tornado框架的HTTP客户端的教程
2015/04/24 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
详解python中的hashlib模块的使用
2019/04/22 Python
python进程和线程用法知识点总结
2019/05/28 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
2020/06/02 Python
Django celery异步任务实现代码示例
2020/11/26 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
Python的信号库Blinker用法详解
2020/12/31 Python
韩国女装NO.1网店:STYLENANDA
2016/09/16 全球购物
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
销售副总经理岗位职责
2013/12/11 职场文书
给面试官的感谢信
2014/02/01 职场文书
上课迟到检讨书
2014/02/19 职场文书
通用自荐信范文
2014/03/14 职场文书
学雷锋活动倡议书
2014/08/30 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
信访维稳承诺书
2015/05/04 职场文书
居住证明范文
2015/06/17 职场文书
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android