【Day20-填充】二维图片资料要怎麽做填充?

今天简单介绍一下在处理二维图片中算是偶尔会用到的工具——填充资料

沿着各种方向填充

这边以2d-array为例,不同尺寸会有不同结果

原始

一个参数——四周数量
np.pad(tmp1,1,'constant',constant_values=100)

两个参数——对两个轴後方添加几个
np.pad(tmp1,(0,3),'constant',constant_values=100)

2x2个参数——对每个轴的前後添加几个
np.pad(tmp1,((0,0),(1,1)),'constant',constant_values=100)

沿着特定缝隙填充

要处理的原始矩阵和对应的seam矩阵
M = np.array([
  [11, 12, 13, 14],
  [21, 22, 23, 24],
  [31, 32, 33, 34]
])

seam = np.array([
  [0, 1, 0, 0],
  [0, 0, 1, 0],
  [0, 0, 0, 1]
])
先建立好一个扩增完之後大小的output矩阵
m, n = seam.shape
output = np.empty((m, n+1), input.dtype)
mask = np.ones((m, n+1), dtype=bool)
output

这边那个神奇的数字是因为np.empty()产生出来的是没有初始化的数字

使用np.where()找到seam的每个位置
nz = np.where(seam)
nz

取反运算之後填入原始数据
mask[nz] = False
output[mask]=input.ravel()
output

接下来就可以针对seam填入特定要求的数据了
output[nz] = 1

<<:  DAY20 - 档案处理 - 利用jszip和file-saver,制作网页下载zip档案

>>:  Day20 React的严格模式

LeetCode 双刀流:700. Search in a Binary Search Tree

700. Search in a Binary Search Tree 昨天提到链结串列(Link...

33岁转职者的前端笔记-DAY 3 什麽是 iframe 及使用心得

iframe 是 写网页常见的语法之一 在进公司前不知道有这语法 但通常一个网页内容 左侧或上方选单...

[ Day 4 ] - 阵列基本介绍

阵列的基本介绍 简单来说是存放一组资料集 阵列 会使用 [ ] 前後包住资料集 下面的范例意思是 d...

[Golang] Introduction to Control Flow

If statement if (condition1) { } else if (conditio...

[Day4]-基本串列(list)

串列基本定义 串列可以储存不同的资料型态,如:整数、字串、浮点数,基本格式如下: List = [...