在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 相关文章推荐
Eclipse + Python 的安装与配置流程
Mar 05 Python
详解python的ORM中Pony用法
Feb 09 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
Apr 02 Python
在python里从协程返回一个值的示例
Feb 19 Python
Python判断有效的数独算法示例
Feb 23 Python
python实现集中式的病毒扫描功能详解
Jul 09 Python
Python学习笔记之迭代器和生成器用法实例详解
Aug 08 Python
opencv3/python 鼠标响应操作详解
Dec 11 Python
Python+opencv+pyaudio实现带声音屏幕录制
Dec 23 Python
Python中包的用法及安装
Feb 11 Python
python模拟点击玩游戏的实例讲解
Nov 26 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
Feb 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 数据库字段复用的基本原理与示例
2011/07/22 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
destoon官方标签大全
2014/06/20 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
详解JS正则replace的使用方法
2016/03/06 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
2017/03/02 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
详解Django框架中的视图级缓存
2015/07/23 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
python绘制圆柱体的方法
2018/07/02 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
4行Python代码生成图像验证码(2种)
2020/04/07 Python
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
英国领先的游戏零售商:GAME
2019/09/24 全球购物
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
应届生法律顾问求职信
2013/11/19 职场文书
制药工程专业毕业生推荐信
2013/12/24 职场文书
园林技术个人的自我评价
2014/02/15 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
建筑院校毕业生求职信
2014/06/13 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
工人先锋号申报材料
2014/12/29 职场文书
导游词400字
2015/02/13 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
创业计划书之服装
2019/10/07 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server