OpenCV与图像处理学习十二——图像形状特征之HOG特征

OpenCV与图像处理学习十二——图像形状特征之HOG特征

  • 一、图像特征理解
    • 1.1 颜色特征
    • 1.2 纹理特征
    • 1.3 形状特征
    • 1.4 空间关系特征
  • 二、形状特征描述
    • 2.1 HOG特征
      • 2.1.1 基本概念
      • 2.1.2 HOG实现过程
      • 2.1.3 代码实现

前面介绍了图像的基础知识、基本处理方法以及传统图像分割的应用,下面的笔记将介绍图像特征与目标检测部分的应用,知识脉络如下所示:
在这里插入图片描述

一、图像特征理解

图像特征是图像中独特的, 易于跟踪和比较的特定模板或特定结构,如下图所示:
在这里插入图片描述
其中E和F是在图像中独特的、特殊的模板,而ABCD四个在图像中是普遍存在的,没有特殊性。

特征就是有意义的图像区域, 该区域具有独特性或易于识别性!

图像特征提取与匹配是计算机视觉中的一个关键问题, 在目标检测、物体识别、 三维重建、 图像配准、 图像理解等具体应用中发挥着重要作用。

图像特征主要有图像的颜色特征纹理特征形状特征空间关系特征

1.1 颜色特征

颜色特征是一种全局特征, 描述了图像或图像区域所对应的景物的表面性质。

颜色特征描述方法:

  • 颜色直方图
  • 颜色空间
  • 颜色分布

1.2 纹理特征

纹理特征也是一种全局特征, 它也描述了图像或图像区域所对应景物的表面性质。 但由于纹理只是一种物体表面的特性, 并不能完全反映出物体的本质属性,所以仅仅利用纹理特征是无法获得高层次图像内容的。
在这里插入图片描述

1.3 形状特征

形状特征有两类表示方法,一类是轮廓特征, 另一类是区域特征。图像的轮廓特征主要针对物体的外边界,而图像的区域特征则描述了是图像中的局部形状特征。

在这里插入图片描述

1.4 空间关系特征

是指图像中分割出来的多个目标之间的相互的空间位置或相对方向关系。
这些关系也可分为连接/邻接关系、 交叠/重叠关系和包含/独立关系等。

在这里插入图片描述

二、形状特征描述

2.1 HOG特征

2.1.1 基本概念

方向梯度直方图(Histogram of Oriented Gradient, HOG) 特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。

它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中, 尤其在行人检测中获得了极大的成功。

主要思想: 在一副图像中, 目标的形状能够被梯度或边缘的方向密度分布很好地描述,所以使用HOG特征来描述目标的形状。

2.1.2 HOG实现过程

  1. 灰度化(将图像看做一个x,y,z(灰度) 的三维图像);
  2. 采用Gamma校正法对输入图像进行颜色空间的标准化(归一化);
  3. 计算图像每个像素的梯度(包括大小和方向);
  4. 将图像划分成小cells;
  5. 统计每个cell的梯度直方图(不同梯度的个数),得到cell的描述子
  6. 将每几个cell组成一个block, 得到block的描述子
  7. 将图像image内的所有block的HOG特征descriptor串联起来就可以得到HOG特征, 该特征向量就是用来目标检测或分类的特征。

2.1.3 代码实现

import cv2
import numpy as np
# 判断矩形i是否完全包含在矩形o中
def is_inside(o, i):ox, oy, ow, oh = oix, iy, iw, ih = ireturn ox > ix and oy > iy and ox + ow < ix + iw and oy + oh < iy + ih# 对人体绘制颜色框
def draw_person(image, person):x, y, w, h = personcv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 255), 2)img = cv2.imread("people.jpg")
hog = cv2.HOGDescriptor()  # 启动检测器对象
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())  # 指定检测器类型为人体
found, w = hog.detectMultiScale(img, 0.1, (1, 1))    # 加载并检测图像
print(found)
print(w)# 丢弃某些完全被其它矩形包含在内的矩形
found_filtered = []
for ri, r in enumerate(found):for qi, q in enumerate(found):if ri != qi and is_inside(r, q):breakelse:found_filtered.append(r)print(found_filtered)
# 对不包含在内的有效矩形进行颜色框定
for person in found_filtered:draw_person(img, person)
cv2.imshow("people detection", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

原图为:
在这里插入图片描述
检测结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python删除文件

import osif os.path.exists(path):os.remove(path)

深度解读:5G正式发牌,国内通信市场冷暖预判

来源&#xff1a;ICT解读者2019年6月6日&#xff0c;工业和信息化部向中国电信、中国移动、中国联通和中国广电正式颁发5G牌照&#xff0c;批准四家企业经营“第五代数字蜂窝移动通信业务”。这标志着我国正式进入5G商用元年。一石激起千层浪&#xff0c;相较于此前各运营商官方…

OpenCV与图像处理学习十三——Harris角点检测(含代码)

OpenCV与图像处理学习十三——Harris角点检测&#xff08;含代码&#xff09;一、角点的概念二、Harris角点检测的实现过程三、Harris代码应用一、角点的概念 角点&#xff1a; 在现实世界中&#xff0c; 角点对应于物体的拐角&#xff0c; 道路的十字路口、 丁字路口等。 从…

wpf prism IRegionManager 和IRegionViewRegistry

引入了一个新的问题&#xff0c;IRegionViewRegistry和IRegionManager都具有RegisterViewWithRegion方法&#xff0c;二者有区别么&#xff1f; 答案是——没有。我们已经分析过&#xff0c;在UnityBootstrapper的中&#xff0c;已经默认建立了IRegionManager和RegionManager的…

The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

python表示条件之间的逻辑与除了用and还可以用&&#xff0c;把and换成&即可

ubuntu zip解压

您好&#xff0c;zip xx.zip压缩&#xff0c;unzip xx.zip 解压&#xff0c;tar zcvf xx.tar.gz压缩tar zxvf xx.tar.gz解压转载于:https://www.cnblogs.com/zxouxuewei/p/4973319.html

Go map如何排序

1. 将key 或 value 单独组成其类型的切片或数组&#xff0c;进行排序 package mainimport ("fmt""sort" )func main() {table : map[string]string{"hello": "hello","world": "world","a": "…

德勤发布《中国智能制造分析报告》

来源&#xff1a;CIO俱乐部亚洲正受到自动化、智能化大潮冲击。国际劳工组织调研发现&#xff0c;越南、柬埔寨、菲律宾和印度尼西亚的工人的失业风险最高&#xff0c;据估计这几个区域约50%的工人工作可能在未来20年被自动化取代。亚洲尤其是中国作为制造业的重要区域&#xf…

OpenCV与图像处理学习十四——SIFT特征(含代码)

OpenCV与图像处理学习十四——SIFT特征&#xff08;含代码&#xff09;一、SIFT算法二、SIFT实现过程三、代码实现一、SIFT算法 SIFT&#xff0c; 即尺度不变特征变换算法&#xff08;Scale-invariant feature transform&#xff0c;SIFT&#xff09; &#xff0c; 是用于图像…

tf.TensorArray

TensorArray可以看做是具有动态size功能的Tensor数组。通常都是跟while_loop或map_fn结合使用。 ta tf.TensorArray(size, dtype, dynamic_sizeTrue) # dynamic_size指定数组长度可变 ta.stack(nameNone) # 将TensorArray中元素叠起来当做一个Tensor输出 ta.unstack(value,…

液态大脑与固态大脑——圣塔菲最新群体智能文集

来源&#xff1a;The Royal society撰文 | Ricard Sol, Melanie Moses, and Stephanie Forrest大脑&#xff0c;神经元构成的器官根植于许多生物体内。这是一种固态的大脑&#xff0c;且组成它们的元素在空间中相对固定。但是相对的&#xff0c;大脑是否可以拥有流动不定的存在…

设置按钮中的图片的旋转,并且旋转之后不变形

1、设置按钮属性&#xff1a;self.titleBtn.imageView.contentMode UIViewContentModeCenter;self.titleBtn.imageView.clipsToBounds NO; 2、处理点击事件 - (void)titleBtnClick {self.titleBtn.imageView.transform CGAffineTransformMakeRotation(M_PI_2); }转载于:http…

OpenCV与图像处理学习十五——LBP纹理特征(含代码)

OpenCV与图像处理学习十五——LBP纹理特征&#xff08;含代码&#xff09;一、LBP介绍二、LBP原理三、代码应用一、LBP介绍 LBP&#xff08;Local Binary Pattern&#xff0c; 局部二值模式&#xff09; &#xff0c; 是一种用来描述图像局部纹理特征的算子&#xff1b; 它具有…

pycharm运行程序时看不到任何结果显示

原因是用程序选择了console来运行&#xff0c;取消console方法如下&#xff1a; Run->Edit Configurations 取消run with python console的勾

iOS 的 XMPPFramework 简介

XMPPFramework是一个OS X/iOS平台的开源项目&#xff0c;使用Objective-C实现了XMPP协议&#xff08;RFC-3920&#xff09;&#xff0c;同时还提供了用于读写XML的工具&#xff0c;大大简化了基于XMPP的通信应用的开发。 1. 登录和好友上下线 1.1XMPP中常用对象们 XMPPStream&a…

OpenCV与图像处理学习十六——模板匹配

OpenCV与图像处理学习十六——模板匹配一、模板匹配介绍二、代码应用一、模板匹配介绍 模板匹配是一种最原始、最基本的模式识别方法&#xff0c;研究某一特定目标的图像位于图像的什么地方&#xff0c;进而对图像进行定位。 在待检测的图像上&#xff0c;从左到右&#xff0…

李剑锋:意识科学就在身边

来源&#xff1a; 科技日报-中国科技网近些年&#xff0c;生命科学家开始关注神奇的大脑&#xff0c;因此各国纷纷提出各自的脑计划;当前有一个更基础的、但极富争议性的领域却被大家忽视了&#xff0c;就是意识科学。事实脑计划的终点应该就是意识科学&#xff0c;但由于目前大…

tf.train.get_checkpoint_state

函数功能&#xff1a;找出训练时保存的模型 ckpt.model_checkpoint_path可以找出所有模型中最新的模型 ckpt tf.train.get_checkpoint_state(/mnist/summary/train) if ckpt and ckpt.model_checkpoint_path:print(ckpt.model_checkpoint_path) 输出&#xff1a; /mnist/s…

永恒的终结

无意间在豆瓣发现这本书,是阿西莫夫写的,对他的基地系列和银河帝国系列仰慕很久了,却因太长没有时间看.看这本<<永恒的终结>>篇幅不是很长,也就拿过来看了. 故事是这样的.在24世纪一个叫马兰松的的科学家发明了一种叫"时空力场"的东西,东西太超前,人们在…

OpenCV与图像处理学习十七——OpenCV人脸检测(含代码)

OpenCV与图像处理学习十七——OpenCV人脸检测&#xff08;含代码&#xff09;一、人脸识别概要1.1 人脸检测1.2 人脸对齐&#xff08;Face Alignment&#xff09;1.3 人脸特征提取&#xff08;Face Feature Extraction&#xff09;1.4 人脸识别&#xff08;Face Recognition&am…