在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常见文件操作的函数示例代码
Nov 15 Python
初步解析Python下的多进程编程
Apr 28 Python
详解Python的Django框架中manage命令的使用与扩展
Apr 11 Python
python计算列表内各元素的个数实例
Jun 29 Python
python django model联合主键的例子
Aug 06 Python
树莓派安装OpenCV3完整过程的实现
Oct 10 Python
python实现输入任意一个大写字母生成金字塔的示例
Oct 27 Python
Python实现变声器功能(萝莉音御姐音)
Dec 05 Python
python圣诞树编写实例详解
Feb 13 Python
浅谈Pycharm最有必要改的几个默认设置项
Feb 14 Python
Python grpc超时机制代码示例
Sep 14 Python
python中watchdog文件监控与检测上传功能
Oct 30 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
神盾加密解密教程(三)PHP 神盾解密工具
2014/06/08 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
2014/04/29 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
2019/07/10 jQuery
jquery实现下载图片功能
2019/07/18 jQuery
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
js制作提示框插件
2020/12/24 Javascript
Python中os和shutil模块实用方法集锦
2014/05/13 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
对python 自定义协议的方法详解
2019/02/13 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
Cotton On美国网站:澳洲时装连锁品牌
2016/10/25 全球购物
下列程序在32位linux或unix中的结果是什么
2014/03/25 面试题
新闻发布会主持词
2014/03/28 职场文书
五好关工委申报材料
2014/05/31 职场文书
拉歌口号大全
2014/06/13 职场文书
党支部对照检查材料
2014/08/25 职场文书
个人授权委托书范本
2014/09/14 职场文书
离婚协议书范文2014
2014/10/16 职场文书
五年级下册复习计划
2015/01/19 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
2016党校培训心得体会
2016/01/07 职场文书
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫