HOG特征的可视化

2024-05-31 21:08
文章标签 可视化 特征 hog

本文主要是介绍HOG特征的可视化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。HOG特征通过计算和统计图像局部区域的梯度方向直方图来构成特征。
近来做论文时,为了直观的看到Hog特征,更好的理解其含义,特地对Hog特征进行了可视化处理。

% 
%【功能】————用于显示 HOG 特征
%
%%1、求取Hog特征矩阵向量
image = imread('pos_10.png');
subplot(1,2,1);
imshow(uint8(image));%2、伽马校正 
title('原图');
[m n]=size(image);
img = double(image);
img=sqrt(img);      %3、下面是求边缘
fy=[-1 0 1];        
fx=fy';             
Iy=imfilter(img,fy,'replicate');   
Ix=imfilter(img,fx,'replicate');   
Ied=sqrt(Ix.^2+Iy.^2);             
Iphase=Iy./Ix;                      %4、下面是求cell,每个cell求其梯度直方图
step=8;                 
orient=9;              
jiao=360/orient;        
Cell=cell(1,1);         
ii=1;                    
jj=1;for i=1:step:m-step         ii=1;for j=1:step:n-step     tmpx=Ix(i:i+step-1,j:j+step-1);          tmped=Ied(i:i+step-1,j:j+step-1);        tmped= tmped / sum( sum(tmped) );        tmpphase=Iphase(i:i+step-1,j:j+step-1);  Hist=zeros(1,orient);                        for p=1:step                             for q=1:stepif isnan(tmpphase(p,q))==1  tmpphase(p,q)=0;        endang=atan(tmpphase(p,q));                    ang=mod(ang*180/pi,360);   if tmpx(p,q)<0              if ang<90               ang=ang+180;       endif ang>270              ang=ang-180;       endendang=ang+0.0000001;          Hist(ceil(ang/jiao))=Hist(ceil(ang/jiao))+ tmped(p,q);  endendHist=Hist/sum(Hist);    Cell{ii,jj}=Hist;       ii=ii+1;               endjj=jj+1;                    
end%5、显示准备工作
angle = [40,80,120,160,200,240,280,320,360];
rad = angle*pi/180;
k = tan(rad);      
[m n] = size(Cell)
image_hog = zeros(m*17,n*17);
for x = 1:m-1for y = 1:n-1intensity = (Cell{x,y}+Cell{x,y+1}+Cell{x+1,y}+Cell{x+1,y+1})*64;X = [-8:1:8];[a b] = size(k);for i=1:b;Y(i,:) = ceil(X*k(i));end%标记block画线block = zeros(17,17);for i=1:17X(i) = X(i) + 9;for j=1:9Y(j,i) = Y(j,i) + 9;if(Y(j,i) > 17 )Y(j,i) = 17;endif(Y(j,i) <1 )Y(j,i) = 1;endendend%标记      for i=1:17for j=1:9block(X(i),Y(j,i)) =intensity(j);           %endendimage_hog((x-1)*17+1:(x-1)*17+17 , (y-1)*17+1:(y-1)*17+17) = block(:,:);end
end
image_hog = image_hog';%6、【平滑Hog特征的不规则边缘】高斯平滑
G = [1 2 3 2 1 ;2 5 6 5 2 ;3 6 8 6 3 ;2 5 6 5 2 ; 1 2 3 2 1 ;]
conv2(G,image_hog );%7、【显示】
subplot(1,2,2);
imshow(image_hog,[0 max(max(image_hog))]);
title('Hog特征');

这里是绘制的结果
这里写图片描述

                                                            2016年8月2日

这篇关于HOG特征的可视化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019048

相关文章

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

使用Vue-ECharts实现数据可视化图表功能

《使用Vue-ECharts实现数据可视化图表功能》在前端开发中,经常会遇到需要展示数据可视化的需求,比如柱状图、折线图、饼图等,这类需求不仅要求我们准确地将数据呈现出来,还需要兼顾美观与交互体验,所... 目录前言为什么选择 vue-ECharts?1. 基于 ECharts,功能强大2. 更符合 Vue

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

Python 交互式可视化的利器Bokeh的使用

《Python交互式可视化的利器Bokeh的使用》Bokeh是一个专注于Web端交互式数据可视化的Python库,本文主要介绍了Python交互式可视化的利器Bokeh的使用,具有一定的参考价值,感... 目录1. Bokeh 简介1.1 为什么选择 Bokeh1.2 安装与环境配置2. Bokeh 基础2

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1