github上有了现成的代码:

GitHub - dovahcrow/patchify.py: A library that helps you split image into small, overlappable patches, and merge patches into original image.A library that helps you split image into small, overlappable patches, and merge patches into original image. - GitHub - dovahcrow/patchify.py: A library that helps you split image into small, overlappable patches, and merge patches into original image.https://github.com/dovahcrow/patchify.py该package可以直接通过pip安装。

安装:

pip install patchify

使用:

(1)把图像划分为图像块(patch)

patchify(image_to_patch, patch_shape, step=1)

示例1:2D image

#This will split the image into small images of shape [3,3]
patches = patchify(image, (3, 3), step=1)

示例2:3D image:

#This will split the image into small images of shape [3,3,3]
patches = patchify(image, (3, 3, 3), step=1)

(2)把patch拼接回原始图像

unpatchify(patches_to_merge, merged_image_size)
示例:
reconstructed_image = unpatchify(patches, image.shape)

This will reconstruct the original image that was patchified in previous code.

完整的示例

2D 图像分块与拼接

import numpy as np
from patchify import patchify, unpatchifyimage = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])patches = patchify(image, (2,2), step=1) # split image into 2*3 small 2*2 patches.assert patches.shape == (2, 3, 2, 2)
reconstructed_image = unpatchify(patches, image.shape)assert (reconstructed_image == image).all()

3D 图像分块与拼接

import numpy as np
from patchify import patchify, unpatchifyimage = np.random.rand(512,512,3)patches = patchify(image, (2,2,3), step=1) # patch shape [2,2,3]
print(patches.shape) # (511, 511, 1, 2, 2, 3). Total patches created: 511x511x1assert patches.shape == (511, 511, 1, 2, 2, 3)
reconstructed_image = unpatchify(patches, image.shape)
print(reconstructed_image.shape) # (512, 512, 3)assert (reconstructed_image == image).all()

把图像划分为patch以及用图像块重建图像相关推荐

  1. 【转】由投影重建图像:滤波反投影、FDK、TFDK三维重建算法理论基础

    转自:由投影重建图像:滤波反投影.FDK.TFDK三维重建算法理论基础_m0_37357063的博客-CSDN博客_fdk算法 1. 基础理论从: [1] RafaelC.Gonzalez, Rich ...

  2. 彩色rgb图像拆分为rgb三个通道,并重新合并为彩色图像

    import numpy as np import imageio import matplotlib.pyplot as pltimg = imageio.imread(r'E:\Vaihingen ...

  3. 【图像配准】基于粒子群改进的sift图像配准matlab源码

    SIFT \ SIFT尺度不变特征转换,具有选择,尺度不变性.由David Lowe在1999年所发表,2004年完善总结. owe将SIFT算法分解为如下四步: \ 1. 尺度空间极值检测:搜索所有 ...

  4. 图像几何变换时为何要用到插值算法?_图像超分辨率技术-简介

    这篇是我之前的课程报告,格式传上来乱了,有时间我会调整,我先把pdf版本放在最前面,建议直接看pdf. 一. 定义与分类 超分辨率复原技术的基本思想是釆用信号处理的方法,在改善图像质量的同时,重建成像 ...

  5. 在线会议中人脸面部轮廓图像提取(二)——HOG人脸面部轮廓图像特征提取

    前言:所使用图片并无盈利等目的,如有侵犯他人肖像权请联系删除. 1. 模型介绍 HOG简介 Histogram of Oriented Gridients,缩写为HOG,是目前计算机视觉.模式识别领域 ...

  6. 图像配准融合(一)——基于互信息的图像配准方法(c++)

    1.内容简介 图像配准方法按照其算法原理可以分为:基于灰度信息的配准.基于变换域信息的配准.基于特征信息的配准 (本人实验主要集中在基于灰度信息的配准以及基于特征信息的配准两类方法,对基于变换域信息的 ...

  7. matlab 图像基本矩阵,MATLAB基本的使用方法归纳(图像,矩阵及函数)

    读取图像:用imread函数读取图像文件,文件格式可以是TIFF.JPEG.GIF.BMP.PNG等.比如 >> f = imread('chestxray.jpg'); 读进来的图像数据 ...

  8. 9.2 图像类型(灰度图像、彩色图像、二值图像以及图像间的转换)

    常用0表示黑色,255表示白色,用0到255之间的数表示灰度 1.灰度图像 例1:生成一个灰色图像,并显示 A = [0 230; 255 60; 30 100]; A = uint8(A); ims ...

  9. ITK:计算矢量图像中每个像素的大小以生成大小图像

    ITK:计算矢量图像中每个像素的大小以生成大小图像 内容提要 输出结果 C++实现代码 内容提要 计算矢量图像中每个像素的大小以生成大小图像 输出结果 C++实现代码 #include "i ...

最新文章

  1. Spring Security-用户密码自定义国密SM2加密
  2. 废弃电器电子产品回收:需要的不仅是补贴 !
  3. 【20090319-02】asp.net 操作 word(转)
  4. 从Github开源项目《云阅》所学到的知识
  5. scrapy读取mysql数据库_python3实战scrapy获取数据保存至MySQL数据库
  6. 中国程序员的最后归宿
  7. 360浏览器升级_360安全卫士下载|360安全卫士 12.0 最新版
  8. Linux Kernel 5.0 近日正式面向公众
  9. 数据应用apply练习
  10. nginx+iis、NLB、Web Farm、Web Garden、ARR
  11. docker图形化监控容器资源使用情况【cadvisor和scope】
  12. 17-内部类的基本概念
  13. HTML正方体滚动特效
  14. 1.0 Linux 网络相关概念和修改IP地址的方法
  15. Oacle锁表,ORA-00054
  16. 下载安装Java运行环境
  17. 【STM32】使用BRR与BSRR寄存器控制GPIO输出
  18. 招标过程中如何讲标?
  19. 如何设置每天服务器定时重启?
  20. MTK Camera上电流程分析

热门文章

  1. mysql中没having_MySQL中无GROUP BY直接HAVING的问题
  2. 计算机c盘如何扩大,电脑c盘怎么扩大
  3. java单例设计模式双重_Java 设计模式 ——单例模式(饿汉,懒汉,双重锁,静态内部类)...
  4. ps制作html图标素材,PS按钮图标制作
  5. ulp java_java.lang.Math.ulp(float f)方法实例
  6. java 防止sql注入_Java中SQL注入以及如何轻松防止它
  7. 熊猫分发_熊猫重命名列和索引
  8. python string_Python String center()
  9. linux基本命令示例_Linux中带示例的sort命令
  10. 如何在C ++中实现内联函数?