在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安装以及IDE的配置教程
Apr 29 Python
在Python中使用全局日志时需要注意的问题
May 06 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
Dec 23 Python
Python 实现12306登录功能实例代码
Feb 09 Python
Python多图片合并PDF的方法
Jan 03 Python
python添加模块搜索路径和包的导入方法
Jan 19 Python
python图形绘制奥运五环实例讲解
Sep 14 Python
Python代码生成视频的缩略图的实例讲解
Dec 22 Python
用python拟合等角螺线的实现示例
Dec 27 Python
使用tensorboard可视化loss和acc的实例
Jan 21 Python
Python内置函数property()如何使用
Sep 01 Python
python 通过exifread读取照片信息
Dec 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 获取可变函数参数的函数
2009/08/26 PHP
PHP 缓存实现代码及详细注释
2010/05/16 PHP
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
python中int与str互转方法
2018/07/02 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
Python networkx包的实现
2020/02/14 Python
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
Luxplus丹麦:香水和个人护理折扣
2018/04/23 全球购物
什么是GWT的Module
2013/01/20 面试题
优秀导游先进事迹材料
2014/01/25 职场文书
大学生秋游活动方案
2014/02/17 职场文书
幼儿园元旦活动感言
2014/03/02 职场文书
中学教师师德承诺书
2014/05/23 职场文书
2015年党总支工作总结
2015/05/25 职场文书
太行山上观后感
2015/06/05 职场文书
python本地文件服务器实例教程
2021/05/02 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python