图像HOG特征提取及直方图绘制

本文介绍了如何利用Matlab进行图像HOG特征提取和直方图绘制,适用于计算机视觉中的目标检测和分类任务。通过读取图像、调用Matlab的HOG函数以及绘制直方图的代码示例,详细阐述了整个过程。

图像HOG特征提取及直方图绘制

在计算机视觉中,HOG(Histogram of Oriented Gradients)特征是一种广泛应用的特征提取方法。它能够在图像中检测出物体的边缘和轮廓,进而实现目标检测、分类等任务。本文将介绍如何利用Matlab实现图像HOG特征提取及直方图绘制。

首先,我们需要准备一个测试图像。这里我们使用Matlab自带的peppers图像作为示例。以下为读取图像的代码:

img = imread('peppers.png');
figure;
imshow(img);

接下来,我们将对图像进行HOG特征提取。Matlab提供了一个方便的函数extractHOGFeatures,可以实现对图像的HOG特征提取。以下是提取HOG特征的代码:

[hog, vis] = extractHOGFeatures(img, 'CellSize',[16 16],'BlockSize', [2 2], 'NumBins', 9);
figure;
imshow(img);
hold on;
plot(vis);

其中,'CellSize'指定了HOG特征计算时使用的单元格大小(即每个小块的大小),'BlockSize'指定了块的大小(即多少个单元格组成一个块),'NumBins'指定了直方图的个数。函数会输出提取得到的HOG特征hog,并返回一个可视化的结果vis,可以用来直观地观察计算出的特征。

最后,我们将绘制HOG

### MATLABHOG特征提取的实现 在MATLAB中,`extractHOGFeatures` 函数用于计算图像的方向梯度直方图 (Histogram of Oriented Gradients, HOG) 特征。这些特征广泛应用于目标检测和分类任务中[^1]。 以下是详细的说明以及代码示例: #### 1. 图像加载与预处理 为了确保输入数据的一致性和减少计算复杂度,在提取HOG特征之前通常会对图像进行标准化操作,例如调整尺寸、转换为灰度图像等。 ```matlab % 加载并预处理图像 I = imread('刘亦菲.jpg'); % 替换为你自己的图像路径 I = imresize(I, [128, 128]); % 将图像缩放到固定大小 I_gray = rgb2gray(I); % 转换为灰度图像以便后续处理 ``` 上述代码实现了图像的读取、尺寸调整以及颜色空间转换到灰度的操作[^1]。 #### 2. 提取HOG特征 利用 `extractHOGFeatures` 函数可以方便地获取指定参数下的HOG特征向量及其可视化表示。 ```matlab [hogFeatures, hogVisualization] = extractHOGFeatures(I_gray,... 'CellSize', [8 8],... % 单元格大小设置为8×8像素 'BlockSize', [2 2],... % 每个块由2×2个单元格组成 'BlockOverlap', [1 1],... % 块之间的重叠区域设为1个单元格宽度 'NumBins', 9); % 方向分为9个离散角度区间 ``` 此部分定义了几个重要参数来控制HOG特征的行为: - **Cell Size**: 控制局部区域内统计的信息粒度。 - **Block Size & Overlap**: 影响相邻区块间的平滑程度及最终描述符长度。 - **Number of Bins**: 表明每个方向上划分的角度数量[^1]。 #### 3. 结果展示 通过绘图功能可直观查看原始图片叠加后的HOG特征分布情况。 ```matlab figure; subplot(1,2,1); imshow(I_gray); title('原图'); subplot(1,2,2); imshow(I_gray); hold on; plot(hogVisualization,'Color','red'); % 绘制红色线条代表HOG特征方向 title('HOG特征可视化'); hold off; ``` 这段脚本创建了一个包含两个子图的新窗口——左侧显示未经修改的源图像;右侧则在同一画布上覆盖有红色彩带描绘出来的HOG特性轮廓[^1]。 #### 4. 查看特征维度 最后一步打印出所得到的HOG特征矢量的具体规模信息。 ```matlab disp(['HOG特征维度: ', num2str(length(hogFeatures))]); ``` 这有助于理解当前配置下产生的具体数值数目,并据此设计相应的机器学习模型架构或者存储方案。 --- ### 问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值