数字图像处理(第三版)第12章 目标识别

模式和模式类

模式是描绘子的集合。在有关模式识别文献中经常使用特征来表示描绘子。模式类是指具有某些共同属性的一族模式。
模式向量采用下列形式表示
x = [ x 1 x 2 ⋮ x n ] \mathbf{x} = \left\lbrack \begin{matrix} {x}_{1} \\ {x}_{2} \\ \vdots \\ {x}_{n} \end{matrix}\right\rbrack x= x1x2xn
其中,每个分量 x i x_{i} xi表示第 i i i个描绘子, n n n是与该模式有关的描绘子总数。如下例所示
在这里插入图片描述
在某篇论文中,科研人员识别了三种鸢尾花,测量了它们花瓣的宽度和长度。不同花瓣宽度和长度不同,描绘它们的模式向量也不同,在选定了一组度量后,模式向量的分量成为每个物理样本的完整描述。

基于决策理论方法的识别

基于决策理论的方法涉及匹配、最佳统计分类器和神经网络等技术。这些方法旨在根据图像的特征和数据进行分类、识别或者其他形式的处理。

匹配

匹配方法基于图像中的局部特征或者整体特征进行图像的识别和分类。常见的匹配方法包括模板匹配和特征点匹配。

模板匹配:模板匹配是一种简单直观的匹配方法,它通过将一个已知的模板图像与待识别图像进行比较来确定是否存在匹配。具体步骤包括:
1.提取待匹配图像中的局部特征或者整体特征。
2.将模板图像与待匹配图像进行比较,通常使用相关性或者欧氏距离等度量来衡量匹配程度。
3.设定阈值来确定匹配结果。
实验

import cv2
import numpy as np

#读取图像
image = cv2.imread('D:\Pycharm Projects\pythonStudy\pythonProject1\iankong.jpg', cv2.IMREAD_GRAYSCALE)
template = cv2.imread('D:\Pycharm Projects\pythonStudy\pythonProject1\iankong.jpg', cv2.IMREAD_GRAYSCALE)

#使用相关性匹配
result = cv2.matchTemplate(image, template, cv2.TM_CCOEFF_NORMED)

#设定阈值
threshold = 0.8
locations = np.where(result >= threshold)
for loc in zip(*locations[::-1]):
  cv2.rectangle(image, loc, (loc[0] + template.shape[1], loc[1] + template.shape[0]), (0, 255, 0), 2)

cv2.imshow('Matched Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

实验结果如下:左图是匹配的图像,右图是原图
在这里插入图片描述
特征点匹配:特征点匹配通过检测和描述图像中的关键特征点,然后通过特征点之间的关系进行匹配和识别。这种方法相比模板匹配更灵活,适用于复杂场景和旋转缩放等变换。

最佳统计分类器

最佳统计分类器利用统计学理论进行图像分类,常见的方法包括贝叶斯分类器和最小错误率分类器。

贝叶斯分类器:贝叶斯分类器基于贝叶斯定理,根据先验概率和条件概率计算后验概率,从而进行分类决策。具体步骤包括:
1.计算每个类别的先验概率。
2.计算给定类别条件下特征的条件概率。
3.根据贝叶斯定理计算后验概率。
4.选择具有最大后验概率的类别作为分类结果。
实验如下

import numpy as np

#计算类别的先验概率
prior_class1 = 0.6
prior_class2 = 0.4

#假设特征维度为1维
#计算条件概率(假设正态分布)
mean_class1 = 1.5
std_dev_class1 = 0.8
mean_class2 = 3.0
std_dev_class2 = 1.0

#定义待分类的特征
feature = 2.2

#计算后验概率
posterior_class1 = prior_class1 * np.exp(-(feature - mean_class1)**2 / (2 * std_dev_class1**2)) / (np.sqrt(2 * np.pi) * std_dev_class1)
posterior_class2 = prior_class2 * np.exp(-(feature - mean_class2)**2 / (2 * std_dev_class2**2)) / (np.sqrt(2 * np.pi) * std_dev_class2)

#进行分类决策
if posterior_class1 > posterior_class2:
  print("属于类别1")
else:
  print("属于类别2")

实验结果:
在这里插入图片描述
最小错误率分类器:最小错误率分类器通过最小化分类错误率来进行决策,它可以基于不同的损失函数进行优化,例如0-1损失函数、平方损失函数等。

神经网络

神经网络在数字图像处理中广泛应用于图像识别和分类任务,特别是深度学习技术的发展使得神经网络在复杂场景中表现优异。
卷积神经网络(CNN):CNN是一种专门用于处理具有网格结构数据(如图像)的神经网络。它通过卷积层、池化层和全连接层构成,能够有效地提取图像的空间特征。
CNN的关键特点包括:
局部感知性:每个神经元只与输入的一个小区域相连,这有助于捕获局部特征。
权值共享:同一卷积层的所有神经元共享相同的权重矩阵,这减少了模型的参数数量。
下采样:通过池化操作减少特征图的尺寸,降低计算成本并增加模型的稳健性。

结构方法

结构方法主要通过分析和比较图像中的形状和结构特征来进行识别和匹配。这些方法包括匹配形状数和串匹配两种主要技术。

匹配形状数

匹配形状数是一种用于图像形状分析和匹配的方法,它关注于图像中的几何形状和边缘分布。
算法简要说明:
1.边缘检测:首先通过边缘检测算法(如Sobel、Canny等)提取图像中的边缘信息。
2.形状描述符提取:使用形状描述符(如Hu矩、Zernike矩等)来描述提取的形状特征。
3.形状数匹配:通过计算图像中的形状数(如角、凸角等)来进行形状的匹配和识别。
下面是一个案例,演示如何使用Canny边缘检测和Hu矩来匹配图像中的形状。

import cv2
import numpy as np

#读取图像
image = cv2.imread('D:\Pycharm Projects\pythonStudy\pythonProject1\iankong.jpg', cv2.IMREAD_GRAYSCALE)
template = cv2.imread('D:\Pycharm Projects\pythonStudy\pythonProject1\picture3.jpg', cv2.IMREAD_GRAYSCALE)

#Canny边缘检测
edges_image = cv2.Canny(image, 100, 200)
edges_template = cv2.Canny(template, 100, 200)

#提取Hu矩
moments_image = cv2.moments(edges_image)
hu_image = cv2.HuMoments(moments_image).flatten()
moments_template = cv2.moments(edges_template)
hu_template = cv2.HuMoments(moments_template).flatten()

#计算Hu矩之间的距离(可以使用其他距离度量)
distance = cv2.matchShapes(hu_image, hu_template, cv2.CONTOURS_MATCH_I1, 0.0)

#打印匹配结果
print(f"形状匹配距离:{distance}")

#显示图像和结果
cv2.imshow('Original Image', image)
cv2.imshow('Template Shape', template)
cv2.waitKey(0)
cv2.destroyAllWindows()

实验结果如下:
在这里插入图片描述
下面是原图像
在这里插入图片描述在这里插入图片描述

串匹配

串匹配是一种用于图像分析中的方法,通常用于识别和比较图像中的重复模式或者序列。
算法简要说明:

特征提取:首先从图像中提取特征序列或者描述子(如SIFT、SURF等)。
序列匹配:使用字符串匹配算法(如KMP算法、Boyer-Moore算法等)来比较特征序列或描述子序列之间的相似性和匹配情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小小程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值