熟练掌握CV中最基础的概念:图像特征,看这篇万字的长文就够了(一)

简介: 熟练掌握CV中最基础的概念:图像特征,看这篇万字的长文就够了(一)

图像特征

什么是图像特征?

| 特征

·对图像进行描述。

·指出图像中的相关信息。            

·将一组图像与其他图像区分开来。

| 类别

·全局特征:将图像视为一个整体。

·局部特征:图像中的部分区域。

| 正式定义

在计算机视觉和图像处理中,特征指的是为解决与某一应用有关的计算任务的一段信息。

·所有的机器学习和深度学习算法都依赖于特征。

 

什么能作为特征?

·单独的像素点强度不能作为特征

| 特征

·总体强度测量平均值,直方图,调色板等。

·边缘和山脊梯度和轮廓。

·特殊的角点特征和曲率。

·斑点和纹理。

·使用过滤器获得的特征。

 

例子

1,        像素点强度

image.png

像素点强度组合作为特征

2,        边缘

image.png


边缘作为特征

3,        关键点

image.png

关键点作为特征


什么是好的特征?

那些受外部因素影响不大的特征是好的特征。

| 特征不变性

·伸缩

·旋转

·转换

·透视法

·仿射

·颜色

·照度

 

角点特征

·角:定义为两条边的交点。·关键点:图像中具有明确位置且可以可靠检测的点。

| 适用范围

·运动检测和视频跟踪。·图像注册。·图像拼接和全景拼接。·3D建模和对象识别。

 

例子

1,        关键点

image.png

 关键点识别

2,        

image.png


角识别


Harris角点检测

| Harris角点检测算法可以分为5个步骤

·转化为灰度图

·计算空间导数

·设置结构向量

·计算Harris响应

·抑制非最大值

| 使用OpenCV实现Harris角点检测


''''' Harris Corners using OpenCV ''' %matplotlib inline  import numpy as np  import cv2  from matplotlib import pyplot as plt  img = cv2.imread("imgs/chapter9/chess_slant.jpg", 1)   #img = cv2.resize(img, (96, 96))  gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  gray = np.float32(gray)   ################################FOCUS###############################  dst = cv2.cornerHarris(gray,2,3,0.04)  ####################################################################   # Self-study: Parameters  plt.figure(figsize=(8, 8))  plt.imshow(dst, cmap="gray")  plt.show()

image.png

'''''  result is dilated for marking the corners '''  dst = cv2.dilate(dst,None)  plt.figure(figsize=(8, 8))  plt.imshow(dst, cmap="gray")  plt.show()


image.png

''''' Threshold for an optimal value, it may vary depending on the image.  We first calculate what is the maximum and minimum value of pixel in this image  '''   max_val = np.uint8(dst).max()  min_val = np.uint8(dst).min()  print("max_val = {}".format(max_val))  print("min_val = {}".format(min_val))

输出


max_val = 255  min_val = 0  img = cv2.imread("imgs/chapter9/chess_slant.jpg", 1)  img[dst>0.1*dst.max()]=[0,0,255]  plt.figure(figsize=(8, 8))  plt.imshow(img[:,:,::-1])  plt.show()

image.png

|利用OpenCV-harris角点求角点坐标

%matplotlib inline  import numpy as np  import cv2  from matplotlib import pyplot as plt   img = cv2.imread("imgs/chapter9/chess_slant.jpg", 1);  #img = cv2.resize(img, (96, 96))  gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)   # find Harris corners  gray = np.float32(gray)  dst = cv2.cornerHarris(gray,2,3,0.04)  dst = cv2.dilate(dst,None)  ret, dst = cv2.threshold(dst,0.01*dst.max(),255,0)  dst = np.uint8(dst)  # find centroids  ret, labels, stats, centroids = cv2.connectedComponentsWithStats(dst)  # define the criteria to stop and refine the corners  # Explain Criteria  criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 100, 0.001)  corners = cv2.cornerSubPix(gray,np.float32(centroids),(5,5),(-1,-1),criteria)  # Now draw them  res = np.hstack((centroids,corners))  res = np.int0(res)  for x1, y1, x2, y2 in res:      #cv2.circle(img,(x1, y1), 5, (0,255,0), -1) # Point Centroids     cv2.circle(img,(x2, y2), 10, (0,0,255), -1) # Point corners  #img[res[:,1],res[:,0]]=[0,0,255]  #img[res[:,3],res[:,2]] = [0,255,0]  plt.figure(figsize=(8, 8))  plt.imshow(img[:,:,::-1])  plt.show()

image.png

目录
相关文章
|
7月前
|
机器学习/深度学习 算法 固态存储
【目标检测】入门基础原理学一遍就够了吧
【目标检测】入门基础原理学一遍就够了吧
|
机器学习/深度学习 人工智能 算法
这篇科普让你Get所有大模型的基础核心知识点
本文介绍了AI大模型的概念和发展历程。AI大模型是指具有1亿以上参数的机器学习模型,通过在大规模数据集上进行预训练,可以直接支撑各类应用。大模型的发展经历了从萌芽期到AI1.0时期,再到AI2.0时期的飞跃,目前最新发布的大模型参数已经达到了千亿甚至万亿级别。国内外的公司都在积极研发和应用大模型,如OpenAI、Google、Facebook、Microsoft等。国内也有百度、阿里巴巴、万维、商汤科技等公司发布了自己的大模型产品。大模型的建造离不开算力资源、算法人才、数据积累等核心要素。此外,文章还列举了一些与大模型相关的专业名词,如算法、模型参数、训练数据、Token等。
|
存储 自然语言处理 算法
【基础算法Ⅰ】算法入门篇
【基础算法Ⅰ】算法入门篇
|
存储 编解码 算法
熟练掌握CV中最基础的概念:图像特征,看这篇万字的长文就够了(二)
熟练掌握CV中最基础的概念:图像特征,看这篇万字的长文就够了(二)
280 0
熟练掌握CV中最基础的概念:图像特征,看这篇万字的长文就够了(二)
|
算法 计算机视觉
熟练掌握CV中最基础的概念:图像特征,看这篇万字的长文就够了(三)
熟练掌握CV中最基础的概念:图像特征,看这篇万字的长文就够了(三)
267 0
熟练掌握CV中最基础的概念:图像特征,看这篇万字的长文就够了(三)
|
机器学习/深度学习 自然语言处理
小白总结Transformer模型要点(一)(下)
本文主要总结了Transformer模型的要点,包含模型架构各部分组成和原理、常见问题汇总、模型具体实现和相关拓展学习。
小白总结Transformer模型要点(一)(下)
|
机器学习/深度学习 自然语言处理 语音技术
小白总结Transformer模型要点(二)(下)
本文主要总结了Transformer模型的要点,包含模型架构各部分组成和原理、常见问题汇总、模型具体实现和相关拓展学习。
小白总结Transformer模型要点(二)(下)
|
机器学习/深度学习 自然语言处理 并行计算
小白总结Transformer模型要点(一)(上)
本文主要总结了Transformer模型的要点,包含模型架构各部分组成和原理、常见问题汇总、模型具体实现和相关拓展学习。
小白总结Transformer模型要点(一)(上)
|
机器学习/深度学习 自然语言处理
小白总结Transformer模型要点(二)(上)
本文主要总结了Transformer模型的要点,包含模型架构各部分组成和原理、常见问题汇总、模型具体实现和相关拓展学习。
小白总结Transformer模型要点(二)(上)
|
存储 算法 C++
算法基础系列第三章——万字精编手把手教你壁咚拓扑排序,让ta乖乖听话~
算法基础系列第三章——万字精编手把手教你壁咚拓扑排序,让ta乖乖听话~
94 0
算法基础系列第三章——万字精编手把手教你壁咚拓扑排序,让ta乖乖听话~

相关实验场景

更多