python+opencv图像金字塔及模板匹配实现

0.Opencv图像金字塔以及模板匹配(亲测—最详细)

0

00.python图像金字塔模板匹配,带nms

00

000.cv2.matchTemplate模板匹配和cv2.minMaxLoc()函数

参考:
000
思路太清晰了,点赞
参考图1
在这里插入图片描述

1.opencv+python实现图像匹配----模板匹配、特征点匹配

参考:1

2.OpenCV - 模板匹配(Python实现)

2

3.Opencv——RGB图像的通道拆分(cv2.split)与合并(cv2.merge)

3

4.OpenCV approxPolyDP()函数详解

4

5.基于金字塔的模板匹配算法(python)

5

11.OpenCV_金字塔模板匹配 (C++)

11

9.图像金字塔与轮廓检测,模板匹配(python实现)

9

6.opencv cv2.imread()

imread函数有两个参数,第一个参数是图片路径,第二个参数表示读取图片的形式,有三种:

cv2.IMREAD_COLOR:加载彩色图片,这个是默认参数,可以直接写1。
cv2.IMREAD_GRAYSCALE:以灰度模式加载图片,可以直接写0。
cv2.IMREAD_UNCHANGED:包括alpha,可以直接写-1

cv2.imread()读取图片后已多维数组的形式保存图片信息,前两维表示图片的像素坐标,最后一维表示图片的通道索引,具体图像的通道数由图片的格式来决定

7.zip

a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
zip(a,c) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

8.time sleep()

Python time sleep() 函数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间。

#!/usr/bin/python
import time
print “Start : %s” % time.ctime()
time.sleep( 5 )
print “End : %s” % time.ctime()

以上实例输出结果为:
Start : Tue Feb 17 10:19:18 2013
End : Tue Feb 17 10:19:23 2013

10.argsort()函数

是将x中的元素从小到大排列,提取其对应的index(索引),然后输出到y

12.pyrDown()与pyrUp()函数

函数原型:
void pyrDown(InputArray src, OutputArray dst, const Size& dstsize=Size());
函数作用:
先对图像进行高斯平滑,然后再进行降采样(将图像尺寸行和列方向缩减一半);

函数原型:
void pyrUp(InputArray src, OutputArray dst, const Size& dstsize=Size());
函数作用:
先对图像进行升采样(将图像尺寸行和列方向增大一倍),然后再进行高斯平滑;

参考:12

13.np.where(condition)

只有条件 (condition),没有x和y,则输出满足条件 (即非0) 元素的坐标 (等价于numpy.nonzero)。这里的坐标以tuple的形式给出,通常原数组有多少维,输出的tuple中就包含几个数组,分别对应符合条件元素的各维坐标。

a = np.array([2,4,6,8,10])
np.where(a > 5) # 返回索引
(array([2, 3, 4]),)
a[np.where(a > 5)] # 等价于 a[a>5]
array([ 6, 8, 10])

np.where([[0, 1], [1, 0]])
(array([0, 1]), array([1, 0]))

参考:13

13.NMS的python实现(通俗易懂NMS)

参考:13

14.np.vstack()&np.hstack()

np.vstack:按垂直方向(行顺序)堆叠数组构成一个新的数组
In[3]:
import numpy as np

In[4]:
a = np.array([[1,2,3]])
a.shape
Out[4]:
(1, 3)

In [5]:
b = np.array([[4,5,6]])
b.shape
Out[5]:
(1, 3)

In [6]:
c = np.vstack((a,b)) # 将两个(1,3)形状的数组按垂直方向叠加
print©
c.shape # 输出形状为(2,3)
[[1 2 3]
[4 5 6]]
Out[6]:
(2, 3)

In [7]:
a = np.array([[1],[2],[3]])
a.shape
Out[7]:
(3, 1)

In [9]:
b = np.array([[4],[5],[6]])
b.shape
Out[9]:
(3, 1)

In [10]:
c = np.vstack((a,b)) # 将两个(3,1)形状的数组按垂直方向叠加
print©
c.shape # 输出形状为(6,1)
[[1]
[2]
[3]
[4]
[5]
[6]]
Out[10]:
(6, 1)
np.hstack:按水平方向(列顺序)堆叠数组构成一个新的数组

In[11]:
a = np.array([[1,2,3]])
a.shape
Out[11]:
(1, 3)

In [12]:
b = np.array([[4,5,6]])
b.shape
Out[12]:
(1, 3)

In [16]:
c = np.hstack((a,b)) # 将两个(1,3)形状的数组按水平方向叠加
print©
c.shape # 输出形状为(1,6)
[[1 2 3 4 5 6]]
Out[16]:
(1, 6)

In [17]:
a = np.array([[1],[2],[3]])
a.shape
Out[17]:
(3, 1)
In [18]:
b = np.array([[4],[5],[6]])
b.shape
Out[18]:
(3, 1)
In [19]:
c = np.hstack((a,b)) 将两个(3,1)形状的数组按水平方向叠加
print©
c.shape # 输出形状为(3,2)
[[1 4]
[2 5]
[3 6]]
Out[19]:
(3, 2)
参考:14

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值