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,一经查实,立即删除!

相关文章

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

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

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

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

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

来源&#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; 是用于图像…

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

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

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;但由于目前大…

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…

清华大学:人工智能之知识图谱(附PPT)

来源&#xff1a;笑看国际风云【导读】知识图谱&#xff08;Knowledge Graph)是人工智能重要分支知识工程在大数据环境中的成功应用&#xff0c;知识图谱与大数据和深度学习一起&#xff0c;成为推动互联网和人工智能发展的核心驱动力之一。基于此背景&#xff0c;《人工智能之…

有关EUV光刻机,你需要知道这些

来源&#xff1a;technews晶圆制造产业进入7 纳米制程之后&#xff0c;目前全世界仅剩台积电与三星&#xff0c;再加上号称自家10 纳米制程优于竞争对手7 纳米制程的英特尔等&#xff0c;有继续开发能力之外&#xff0c;其他竞争者因须耗费大量金钱与人力物力的情况下&#xff…

多家巨头实测鸿蒙系统:比安卓快60%

来源&#xff1a;腾讯新闻&#xff0c;数码科技大爆炸众所周知&#xff0c;近期&#xff0c;华为被打压和打击的事件一直没有停止&#xff0c;但华为并没有坐以待毙&#xff0c;很快就启动了“备胎计划”给予积极的回击和反击&#xff0c;像保险柜里的海思“备胎芯片”、华为自…

混淆矩阵及分类性能评估方法

混淆矩阵&#xff1a; 公式&#xff1a;其中TPR又叫召回率Recall

《细胞》:打破百年生物学法则,记忆可以遗传给下一代,甚至可能跨越多代...

来源&#xff1a;转载自iNature许多人推测大脑活动可能以某种方式产生可遗传的变化&#xff0c;这将影响下一代的命运。然而&#xff0c;这一想法虽然具有吸引力&#xff0c;却挑战了生物学的基本法则之一&#xff0c;也被称为“生物学的第二定律”&#xff0c; “Weismann障碍…

欢迎参加城市大脑与智慧城市前沿趋势 主题论坛 |未来科技大讲堂 第12期

近年来&#xff0c;智慧城市建设出现新的动向&#xff0c;包括城市大脑、城市云脑、城市超级大脑、城市超脑、城市神经网络等“泛城市大脑”概念也大量涌现。杭州、上海、北京、广州等城市各自提出和开展了不同城市大脑建设方案&#xff0c;其中上海市开展了以建设城市神经元系…

JavaSE——Java介绍与环境变量简述

第1节 Java介绍 1、Java的起源与演变 略 2、Java体系与特点 Java体系 &#xff1a; Java SE&#xff1a;标准版&#xff1a;各应用平台的基础&#xff0c;桌面开发和低端商务应用的解决方案。 Java EE&#xff1a;企业版&#xff0c;以企业为环境而开发应用程序的解决方案…

深度:中国智能制造分析报告

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

JavaSE——Java基础语法(二进制、变量、方法(函数)、运算符、转义字符)

第2节 基础语法 一、二进制 1.1 二进制介绍 计算机中的数据都以二进制数字保存。 二进制 &#xff1a;逢二进一&#xff0c;即只有0、1两个值。如十进制的10在计算机内保存为二进制的1010。 计算机中信息的存储单位&#xff1a; 位&#xff08;Bit&#xff09;&#xff1a…