python 图片拼接成数字_用Python语言对任意图像进行m*n的均匀分块并拼接还原(思路非常清晰,步骤简单)...

本文介绍了如何使用Python将图片按照m*n的网格均匀分块,并详细阐述了分块存储、图像裁剪、长宽整除问题的解决方案。提供了三种方法:四舍五入法、图像缩放法和非均分方法。同时,展示了如何将分块后的图像还原成原始图像。最后,给出了分块图像的显示和还原结果。
摘要由CSDN通过智能技术生成

目录

1.读取原始图像

2.网格划分,将图像划分为m*n块

2.1分块后图像的存储问题

2.2图像的裁剪

2.3图像长宽的整除问题

方法一:四舍五入法

方法二:图像缩放法

方法三:非均分方法

3.显示分块后的图像

4.分块图像的还原

5.参考文献

基本思路:根据图像尺寸创建一个

( m + 1 ) × ( n + 1 ) (m+1) \times (n+1)(m+1)×(n+1)个均匀的网格顶点坐标,对于图像块来说每个图像块的左上角和右下角可以唯一确定一个图像块,这样就可以利用网格顶点坐标对原始图像进行裁剪。

注意:完整的Python源程序可以在我的CSDN上下载( 点击进入下载界面),没有积分的小伙伴把下面的各个程序整理起来即可。

1.读取原始图像

import numpy as np

import matplotlib.pyplot as plt

import cv2

img = cv2.imread('cat.jpg')

img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)

h, w = img.shape[0], img.shape[1]

fig1 = plt.figure('原始图像')

plt.imshow(img)

plt.axis('off')

plt.title('Original image')

print( '\t\t\t 原始图像形状:\n', '\t\t\t',img.shape )

d2ae184066de141ec61e8c6a08f85241.png

8c629f4b215cd667df3583f05331984f.png

2.网格划分,将图像划分为m*n块

这里有三个要点:图像的存储问题,图像的裁剪方法,长宽不能整除的问题。下面逐一介绍

2.1分块后图像的存储问题

由于事先不知道m和n的具体值,因此也就不知道图像的分块数目具体是多少个。必须想个办法来存储这m × n m \times nm×n个图像分块,创建m × n m \times nm×n个变量来存储也是不可取的,因为这样会让程序变得很复杂。

本人想到一个很简单的方法ÿ

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值