Questions tagged «python»

Python是高级解释通用编程语言。Python具有流行的数值和科学库/程序包,最著名的是numpy和scipy。scipy.signal软件包是功能强大的信号处理软件集合。该标签涵盖了numpy,scipy和其他通常用于SP计算的Python软件包的使用。

7
在图像中找到正方形
我需要使用OpenCV在图像中找到正方形(在matlab或其他任何问题上都没问题,通常我期望的是一些想法)。 考虑下面的测试图像: 我需要在上面的图像中准确找到那些彩色的正方形(而不是白色的长条)。 我做了什么 : 我应用了通用方法(OpenCV样本随附),即在所有颜色平面中找到轮廓,对其进行近似并检查元素数= 4。它在某种程度上可以检测到很少的正方形,尤其是暗的正方形。 我要做的下一步是预测。即这种安排是固定的。因此,如果获得一些,我可以预测剩余的。它还可以进一步扩展。但是准确性非常差。 但是我觉得这里的预测不是一个好方法,并且它并不总是提供第一步所给出的准确答案。 我需要的 : 1)还有其他更好的方法可以更准确地检测这些正方形吗?还是多种方法? 重要的一点是,时间在这里不是问题。算法可能很慢,没关系。但是准确性是主要标准。 有时,图像可能更加模糊。 我面临的主要问题之一是某些正方形的颜色与背景颜色几乎相似(请检查第3列的第一和第二个正方形)。 寻找想法,在此先感谢 更新: 以下是我得到的最大准确结果: 当然,结果图像的大小会有所调整。 更新2: 我在下面的答案中给出了更好的解决方案:https : //dsp.stackexchange.com/a/7526/818

3
为加速度计数据选择正确的滤波器
我对DSP相当陌生,并且已经对用于平滑python中的加速度计数据的可能过滤器进行了一些研究。下图显示了一个疾病类型的示例: 本质上,我正在寻求有关平滑数据以最终将其转换为速度和位移的建议。我了解到手机的加速度计非常嘈杂。 我认为目前无法使用卡尔曼滤波器,因为我无法握住该设备来引用数据产生的噪声(我读到将设备放平并从这些读数中找到噪声的数量很重要吗?) FFT产生了一些有趣的结果。我的尝试之一是对加速度信号进行FFT,然后渲染低频使其FFT绝对值为0。然后,我使用了ω算术和逆FFT来获得速度图。结果如下: 这是处理事情的好方法吗?我正在尝试消除信号的整体噪声性质,但是需要识别明显的峰值,例如在80秒左右。 我还对原始的加速度计数据使用低通滤波器感到疲倦,这在平滑数据方面做得很好,但是我不确定从何而来。关于从这里出发的任何指导都将非常有帮助! 编辑:一点点代码: for i in range(len(fz)): testing = (abs(Sz[i]))/Nz if fz[i] < 0.05: Sz[i]=0 Velfreq = [] Velfreqa = array(Velfreq) Velfreqa = Sz/(2*pi*fz*1j) Veltimed = ifft(Velfreqa) real = Veltimed.real 因此,本质上,我对加速度计数据执行了FFT,使用简单的砖墙滤波器将Sz滤波后的高频输出出去(我知道这并不理想)。然后对数据的FFT使用欧米茄算法。也非常感谢datageist将我的图片添加到我的帖子中:)
28 fft  python 

1
适用于Python初学者的低通滤波器和FFT
我对信号处理尤其是FFT还是陌生的,因此不确定在这里是否做正确的事情,我对结果有些困惑。 我有一个离散的实函数(测量数据),并想在其上设置一个低通滤波器。选择的工具是带有numpy软件包的Python。我遵循以下过程: 计算我的函数的英尺 切断高频 执行反函数 这是我正在使用的代码: import numpy as np sampling_length = 15.0*60.0 # measured every 15 minutes Fs = 1.0/sampling_length ls = range(len(data)) # data contains the function freq = np.fft.fftfreq(len(data), d = sampling_length) fft = np.fft.fft(data) x = freq[:len(data)/2] for i in range(len(x)): if x[i] > 0.005: # …


2
提高Python的频谱图分辨率?
我正在使用该specgram()函数在matplotlibPython中生成语音波文件的频谱图,但输出的质量始终比我的普通转录软件Praat生成的质量差很多。例如,以下调用: specgram( fromstring(spf.readframes(-1), 'Int16'), Fs=framerate, cmap=cm.gray_r, ) 生成此: 在Praat期间,使用以下设置处理相同的音频样本: 查看范围:0-8000Hz 窗长:0.005s 动态范围:70dB 时间步长:1000 频率步进:250 窗口形状:高斯 生成此: 我究竟做错了什么?我尝试摆弄所有specgram()参数,但似乎没有任何方法可以改善分辨率。我几乎没有FFT的经验。

3
用傅里叶方法进行层析成像重建的代码有什么问题?
最近,我一直在研究层析重建算法。我已经有了FBP,ART,类似于SIRT / SART的迭代方案甚至使用直线线性代数的慢速工作实现(慢!)。 这个问题与这些技术无关 ; “为什么有人会那样做,这里是一些FBP代码”这样的形式的答案并不是我想要的。 我要对该程序执行的下一件操作是“ 完成设置 ”并实现所谓的“ 傅立叶重构方法 ”。我对此的理解基本上是将1D FFT应用于正弦图“曝光”,将其作为放射状的“轮辐”安排在2D傅立叶空间中(这是非常有用的事情,直接根据中心切片定理可以得出) ,从这些点插值到该2D空间中的规则网格,然后应该可以进行傅立叶逆变换以恢复原始扫描目标。 听起来很简单,但是我运气不佳,无法进行任何看起来像原始目标的重建。 下面的Python(numpy / SciPy / Matplotlib)代码是我想做的最简洁的表达式。运行时,它将显示以下内容: 图1:目标 图2:目标的正弦图 图3:FFT编辑的正弦图行 图4:第一行是从傅立叶域正弦图行内插的二维FFT空间;最下面一行是(出于比较目的)目标的直接2D FFT。这是我开始变得可疑的地方。从正弦图FFT插值的图看起来与通过直接对目标进行2D FFT绘制的图相似...但有所不同。 图5:图4的傅立叶逆变换。我希望它比实际更能被识别为目标。 有什么想法我做错了吗?不知道我对傅立叶方法重构的理解是否存在根本性缺陷,或者我的代码中仅存在一些错误。 import math import matplotlib import matplotlib.pyplot as plt import numpy as np import scipy.interpolate import scipy.fftpack import scipy.ndimage.interpolation S=256 # Size of target, …

1
白噪声的相位和幅度响应是什么?
我想在频域中创建白噪声,然后使用python将其转换为时域。为了理解这个问题,我只是在时域中产生白噪声,然后将其转换为频率域: import scipy.signal as sg import numpy as np import matplotlib.pyplot as plt e = np.random.normal(0,1,1e3) E = sg.fft(e) plt.figure("Bode plot") plt.subplot(211) plt.title("Magitude") plt.plot(abs(E)) plt.subplot(212) plt.title("Phase") plt.plot(np.angle(E)) plt.show() 我没有完全按照我的预期看: 问题: 白噪声不应该具有平坦的幅度响应吗?(所有频率相等) 标准偏差(在我的示例中为1)与幅度和相位之间是什么关系? 先感谢您!
16 fft  noise  python 

5
如何在Python中为采样信号编写低通滤波器?
我有一些信号每1 ns(1e-9 sec)采样一次,并且有1e4点。我需要从该信号中滤除高频。假设我需要过滤高于10 MHz的频率。我希望对于低于截止频率的频率,信号将保持不变。这意味着对于低于截止频率的频率,滤波器的增益将为1。我希望能够指定过滤器顺序。我的意思是,一阶滤波器在截止频率后具有20 db / dec的斜率(功率下降),二阶滤波器在截止频率后具有40 db / dec的斜率,依此类推。代码的高性能很重要。

4
在numpy.array的布尔映射中计算1s的组数
我现在正在通过PIL(Python图像库)处理Python中的某些图像处理。我的主要目的是计算免疫组织化学图像中有色细胞的数量。我知道有关于它的相关程序,库,函数和教程,我检查了几乎所有它们。我的主要目标是尽可能地从头开始编写代码。因此,我试图避免使用许多外部库和函数。我已经编写了大部分程序。因此,这是逐步进行的操作: 程序接收图像文件: 并对红细胞进行处理(基本上,它会关闭低于某个红色阈值的RGB值): 并创建它的布尔图,(因为它很大,将粘贴其中的一部分),它基本上将上面遇到的第二个图像中遇到红色像素的位置放1。 22222222222222222222222222222222222222222 20000000111111110000000000000000000000002 20000000111111110000000000000000000000002 20000000111111110000000000000000000000002 20000000011111100000000000000000001100002 20000000001111100000000000000000011111002 20000000000110000000000000000000011111002 20000000000000000000000000000000111111002 20000000000000000000000000000000111111102 20000000000000000000000000000001111111102 20000000000000000000000000000001111111102 20000000000000000000000000000000111111002 20000000000000000000000000000000010000002 20000000000000000000000000000000000000002 22222222222222222222222222222222222222222 我特意在2s的边界上生成了类似框架的东西,以帮助我计算该布尔映射中1s的组数。 我对你们的问题是,我怎么能有效地计算这种布尔映射中的单元数(1s组)?我发现http://en.wikipedia.org/wiki/Connected-component_labeling看起来极为相关和相似,但据我所知,它是在像素级别。我的处于布尔级别。只有1和0。 非常感谢。
16 python 

4
Scipy-音频处理
我正在寻找音频信号处理的良好工具。例如语音和音乐分析,自动语言识别等。 Scipy库是否提供音频处理功能?它是否有用于音频信号处理的好工具? 你能建议一个工具吗?

3
图像处理编码
我想知道哪种图像处理是最好的语言?我知道MATLAB有一个很好的库和用户社区。我还没有检查出来,那里也有python。 最有效的语言是什么?

3
STFT和DWT(小波)
STFT可以成功用于声音数据(例如带有.wav声音文件),以便进行某些频域修改(例如:噪声消除)。 在N=441000(即以采样率10秒fs=44100),,的情况下windowsize=4096,overlap=4STFT近似生成一个430x4096数组(第一坐标:时间帧,第二坐标:频率箱)。可以在此数组上进行修改,并可以使用重叠加法(*)进行重构。 小波怎么可能做类似的事情?(DWT),即得到a x b具有a时间帧和b频率段的相似形状数组,对此数组进行一些修改,最后恢复信号?怎么样 ?小波等于重叠叠加是什么?这里涉及的Python函数是什么(我还没有找到使用pyWavelets... 进行音频修改的简单示例)? (*):这是可以使用的STFT框架: signal = stft.Stft(x, 4096, 4) # x is the input modified_signal = np.zeros(signal.shape, dtype=np.complex) for i in xrange(signal.shape[0]): # Process each STFT frame modified_signal[i, :] = signal[i, :] * ..... # here do something in order to # modify the signal in …
12 fft  wavelet  dft  python  stft 

3
在实际录制中无法通过FastICA分离声音信号
我已经编写了一个程序,使用Python MDP FastICA示例上的代码在立体声WAV文件上执行FastICA。 通过音频示例,我得到了很好的结果。 然后,我尝试通过将麦克风1连接到L通道,将麦克风2连接到R通道,使用连接到我电脑立体声麦克风的两个计算机单声道麦克风进行真实世界录音。在安静的房间里聊天时,我会在后台播放一些音乐进行测试。 但是,运行FastICA根本不会分离信号。麦克风的质量是否可能太差?在运行FastICA之前,我需要对记录的WAV文件(16位,有符号PCM,44100Hz)做任何事情吗? 您可以在此处下载录音。
12 ica  python 

1
识别聚集成形状的数据
我正在使用Python进行一个项目,以检测和分类一些鸟类歌曲,但发现自己处于将波形文件转换为频率与时间数据的位置。这并不是一个太大的问题,但是为了能够将不同的音节分为几类,我需要编写一些东西来检测何时数据集群为某种形状。为了让您大致了解数据的外观,以下是数据绘制时的图像: 我需要一些方法来获取每个单独的音节(每个形状的两侧都有分隔符)并将其保存到变量或自己的文件中,以便我可以使用SciPy在它们之间运行Pearson相关性。 另外,我更喜欢Python,但是如果您有其他方法可以使用其他语言进行编码,则可以开放。 谢谢!
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.