图像处理——特征检测(feature extraction)

Canny边缘检测法

霍夫变换(Hough Transform)

博文:https://www.cnblogs.com/php-rearch/p/6760683.html
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
笛卡尔坐标空间到极坐标空间的转换,笛卡尔坐标空间中的一条直线对应极坐标空间中一个点,极坐标空间中一条曲线代表笛卡尔坐标空间中一个点。

直线检测

算法实现
  1. 读取原始图并转换成灰度图,采用边缘检测算子(如Canny)转换成二值化边缘图像;
  2. 对该图像进行霍夫变换;
  3. 找到大于阈值的累加器,和对应的ρ, θ 参数。
概率霍夫变换(Probabilistic Hough Transform)— 提取线段

圆检测

算法实现
  1. 读取原始图并转换成灰度图,采用边缘检测算子(如Canny)转换成二值化边缘图像;
  2. 给定半径R,对于每个图像中的边缘点(a, b),按照参数方程 x = a + Rcos(θ) 和 y = b + Rsin(θ) 将那些可能是一个圆中心的单元格值进行累加;
  3. 找到大于阈值的累加器,和对应的 a, b 参数;
  4. 若半径未知,改变R的值,重复步骤2~3,直到遍历完半径范围。
# -*- coding: utf-8 -*- import numpy as np import librosa import random def extract_power(y, sr, size=3): """ extract log mel spectrogram feature :param y: the input signal (audio time series) :param sr: sample rate of 'y' :param size: the length (seconds) of random crop from original audio, default as 3 seconds :return: log-mel spectrogram feature """ # normalization y = y.astype(np.float32) normalization_factor = 1 / np.max(np.abs(y)) y = y * normalization_factor # random crop start = random.randint(0, len(y) - size * sr) y = y[start: start + size * sr] # extract log mel spectrogram ##### powerspec = np.abs(librosa.stft(y,n_fft=128, hop_length=1024)) ** 2 #logmelspec = librosa.power_to_db(melspectrogram) return powerspec def extract_logmel(y, sr, size=3): """ extract log mel spectrogram feature :param y: the input signal (audio time series) :param sr: sample rate of 'y' :param size: the length (seconds) of random crop from original audio, default as 3 seconds :return: log-mel spectrogram feature """ # normalization y = y.astype(np.float32) normalization_factor = 1 / np.max(np.abs(y)) y = y * normalization_factor # random crop start = random.randint(0, len(y) - size * sr) y = y[start: start + size * sr] # extract log mel spectrogram ##### melspectrogram = librosa.feature.melspectrogram(y=y, sr=sr, n_fft=2048, hop_length=1024, n_mels=90) logmelspec = librosa.power_to_db(melspectrogram) return logmelspec def extract_mfcc(y, sr, size=3): """ extract MFCC feature :param y: np.ndarray [shape=(n,)], real-valued the input signal (audio time series) :param sr: sample rate of 'y' :param size: the length (seconds) of random crop from original audio, default as 3 seconds :return: MFCC feature """ # normalization y = y.astype(np.float32) normalization_factor = 1 / np.max(np.abs(y))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值