php 提取图片的特征,让机器“看见”:图像数据的特征提取方法

图像特征主要有图像的颜色特征、纹理特征、形状特征和空间关系特征。人眼能够看到图像这种视觉信息,但这种信息并不能让计算机“看见”,即计算机并不能处理这种信息。

想要让计算机“看见”,就要求咱们将图像的视觉信息转化成计算机可以识别和处理的定量形式。这就是图像特征提取,传统的特征提取方法分为两个类别,分别是基于结构形态的特征提取与基于几何分布的特征提取。算法

基于结构形态的特征提取

一般状况下,基于结构形态的特征有两类表示方法,一类是轮廓特征,另外一类是区域特征。基于结构形态的特征提取方法主要是将字符图像的结构形态转化为特征向量,主要包括边界特征法、傅里叶特征算子法、形状不变矩法以及几何参数法。

app

边界特征法ide

边界特征法,顾名思义,该方法主要关注的是图像边界部分的特征。其中,霍夫变换法和边界方向直方图法是两种最典型的边界特征法。函数

1. 霍夫变换spa

原始图像坐标系下的一个点对应于参数坐标系中的一条直线,反之,参数坐标系下的一条直线对应于原始图像坐标系下的一个点。而后,将原始图像坐标系下的各个点都投影到参数坐标系以后,会发现有汇集的点,这些汇集的点组成了原始坐标系下的直线。

3d

下面咱们给出一个小例子,经过霍夫变换来检测图片中的直线。code

e555d62e96a4549ddd4db1a428b41577.png

原始图片orm

具体代码以下:blog

#coding=utf-8import cv2import numpy as npim = cv2.imread('hough.png')edges = cv2.Canny(im, 50, 150, apertureSize=3)result = im.copy()minLineLength = 10maxLineGap = 30lines = cv2.HoughLinesP(edges, 1, np.pi/180, 200, minLineLength, maxLineGap)for x1, y1, x2, y2 in lines[0]:    cv2.line(result, (x1, y1), (x2, y2), (0, 0, 255), 2)cv2.imwrite("hough_result.png", result)

2. 边界方向直方图

首先利用常见的图像边缘检测算子求得图像的边缘,而后作出关于边缘大小和方向的直方图。一般的方法是构造图像灰度梯度方向矩阵。

图像边缘检测。经常使用的边缘检测算子有Laplacian

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值