タグ付けされた質問 「python」

Pythonは、高水準の解釈された汎用プログラミング言語です。Pythonには、人気のある数値および科学ライブラリ/パッケージ、特にnumpyとscipyがあります。scipy.signalパッケージは、強力な信号処理ソフトウェアコレクションです。このタグは、SPの計算によく使用されるnumpy、scipy、およびその他のPythonパッケージの使用をカバーしています。

3
元の信号からローパスフィルター処理された信号を差し引き、その結果を「ハイパス」として使用することは正しいですか?
python / scipy / numpyでバンドパスまたはハイパスフィルターを実装するためのドキュメントを見つけるのに苦労しています。 ただし、ローパスフィルターを簡単に作成して適用できるので、次のように質問します。 信号をローパスフィルター処理し、元の信号から結果を差し引くことで、高周波のみを取得することは概念的に正しいでしょうか? また、Pythonの単純なバンドパスフィルターの単純な例(できればnumpyおよびscipyライブラリーを使用している人)がいるなら、私は非常に感謝します。 私が探しているのは次のようなものです: filtered_signal = band_pass(original_signal, rate, low=20, high=500) 助けてくれてありがとう! 編集:scipyでは、これをローパスとして使用していますが、良い結果が得られます。 import numpy, scipy.signal def firfilt(interval, freq, sampling_rate): nfreq = freq/(0.5*sampling_rate) taps = sampling_rate + 1 a = 1 b = scipy.signal.firwin(taps, cutoff=nfreq) firstpass = scipy.signal.lfilter(b, a, interval) ## second pass to compensate phase …

2
Pythonを使用してパターン検出を行うアプリのGUIでボタンを検出するにはどうすればよいですか?
Windowsの電卓アプリのGUIを例に説明します。この電卓アプリケーションが開いていて集中している場合、すべてのボタンを検出する方法を見つける必要があります。非侵入型のメソッドしか使用できないため、ボタンIDなどは問題外です。これは私を画像認識に導きます。あるいは、特定の画像ではなく、特定のパターンに従う一連の画像が必要なので、画像検出と言います。特定のボタン画像と画像認識を使用して、クリック、右クリック、dblクリックなどを行う方法を知っています[1]。逆にどうすればよいかわかりません。GUIをスキャンして、ボタンであるという要件を満たす領域を見つけます(長方形、テキスト/アイコン/グラフィックラベルなど)。より大きな取り組みは、長方形の形状を持たないアイテムを検出することです(たとえば、Windowsデスクトップ上のアイコン)。 私が必要としているものに最も近いのは、写真から顔を検出することです。[2] しかし、これを私の場合に適用する方法がわかりません。人間の顔の検出では、Haarカスケード生成で顔の何百枚もの写真を使用する必要があることがわかりました(10〜15個のボタンのスナップショットだけでこれを行う方法がわからない)。リンゴのような別の種類のオブジェクトを検出する必要がある場合は、多くの画像を使用して、そのオブジェクトのHaarカスケードを再度生成する必要があります。 あなたは、パターン検出のみを使用して、GUIでボタン、アイテムなどを検出しようとしたことがありますか?「これはアイコン/ボタンです」と言って、その領域をスナップショットで取得できるようにするだけです。 [1] PythonでSikuliXを使用して、特定のパターンでアクションを実行します。 [2] OpenCVおよびHaarカスケード(XML形式)を使用すると、これが簡単にできることがわかりました。Haarカスケードを作成するには、少しの忍耐とスキルが必要です。

1
カメラにアクセスせずにカメラのキャリブレーションをハックすることは可能ですか?
多くの場合、カメラにアクセスせずに処理するビデオのストリームがあります。カメラマトリックスにアクセスできることは、さまざまな処理技術にとって有益です。カメラにアクセスせずにカメラのキャリブレーションをハックすることは可能ですか? 私は、道路を記録している移動中の車に取り付けられた1台のカメラからのビデオストリームを持っています(したがって、地面に複数の平行線、レーンマーカーの角はありますが、円はありません)。これを真上から見下ろしたいのですが、カメラにアクセスできません。出来ますか?もしそうなら? 私は、OpenCVの学習:OpenCVライブラリのあるコンピュータビジョンブックから、次のマトリックスが必要であることを理解しています。 組み込み関数、および ねじれ .. cv2.undistort()画像にホモグラフィcv2.getPerspectiveTransform()を計算しcv2.warpPerspective()、最終的にトップビューを取得します。 質問 組み込み関数または歪み行列/パラメーターを計算/近似/推測するにはどうすればよいですか?すべてのパラメーターは重要ですか? 他のカメラ(OpenCVソースコードサンプルなど)からパラメーターをコピーしても問題ありませんか? 事前調査: OpenCV Pythonカメラキャリブレーションチュートリアル -カメラへのアクセスが必要 カメラのAutoCalibration-「平行線または形状が既知(例:円形)のオブジェクトの複数のセットが識別された場合、キャリブレーションが取得される可能性があります」 カメラのキャリブレーションに関連する回答を理解しようとしています[ 1 ] [ 2 ] [ 3 ]私の問題に対する回答を見つけようとしています。 何か案は?事前にあなたの助けを感謝します! 更新1:透視変換実験 入力画像の4点を使用getPerspectiveTransform(pts1,pts2)しdst = cv2.warpPerspective(img,M,(x,y), flags=flags)て照合し、一種のトップダウンビューを取得しようとしました。しかし、歪みを処理する方法がわかりません: ポイントの選択:最初に、入力を拡大し、レーンマーカー上の一致する外部ポイントを正確に選択してホモグラフィマトリックスを作成し、で透視変換画像をプレビューしましたwarpPerspective。車線が歪んでいるのを見ましたが、どれほどひどいのかわかりませんでした。アイデアを得るために、両端のデルタ(50px)フラットでさらにポイントを選択しました。これは私が得るものです: カメラにアクセスしなくても歪みを修正できますか?これを修正する他の方法はありますか? 使用する入力画像が少ない: 更新2:トップダウンビューでの非平行(散乱)オプティカルフロー これは、歪みやその他の原因によるものですか?:

2
フィルタリング-周波数領域での乗算
単純なローパスフィルターを作成しようとしていますが、単純なバターワースフィルターの周波数応答を見て、驚くべき結果が得られました。 この他の投稿から以下の例の多くをコピーしました。スクリプトの下部にコードを追加して、入力と出力のスペクトルをフィルターの周波数応答と比較します。出力スペクトルがBB\mathbf B 入力スペクトルの積でなければなりません AA\mathbf A と周波数応答 HH\mathbf H: B=HAB=HA \mathbf B = \mathbf H \mathbf A ただし、下のプロットは、フィルターが実際に一部の低周波成分を増加させていることを示しています。赤い線が下の緑の上にある様子を確認してください 4 Hz4 Hz4\textrm{ Hz}。 これがなぜであるか誰でも説明できますか? import numpy as np from scipy.signal import butter, lfilter, freqz import matplotlib.pyplot as plt from scipy.fftpack import fft as fft def butter_lowpass(cutoff, fs, order=5): nyq = 0.5 …

2
Pythonを使用してオンラインでデジタル信号をリアルタイムでフィルタリングする
現在、バンドパスフィルターを信号にリアルタイムで適用しようとしています。一定のサンプリングレートで入力されるサンプルがあり、対応するバンドパスフィルター処理された信号を計算したいと思います。 これを行う最善の方法は何でしょうか?いくつかの新しいサンプルが入ってくるたびに信号全体(または少なくとも巨大なビット)をフィルタリングする必要があるか、またはフィルタリングされた新しい部分を効率的に決定できる方法(スライディングDFTなど)があるか信号? バターワースフィルターを使用したい(オフライン分析のために、現在scipyのバターとlfilterを使用しています)。この関数がフィルター遅延を返すことができることは知っていますが、一定の信号を取得するためにそれを使用する方法がわかりません。

1
一連のムービーフレームから正弦波アーティファクトを削除する
非常に周期的なアーチファクトによって汚染された一連のムービーフレームで構成されるデータセットの事後分析を行っています。このアーティファクトをフレームから削除したいと思います。 プロットを簡単にするためにM、ピクセル値の配列をに再形成し、[nframes, npixels]すべてのピクセル値を平均して1Dベクトルを作成しましたm。以下は、この信号が時間領域でどのように見えるかです。拡大されたインセットでは、振動がはっきりとわかります。 次に、を使用してピリオドグラムを作成し、周波数に対してFm = rfft(m)プロットabs(Fm)**2しました。約1.5 Hzに非常に鋭いピークが見られます。 時間の周期性だけでなく、このアーチファクトの空間成分も弱いようです。正確なピーク周波数値では、フレームのx軸全体で位相が滑らかに変化するように見えるため、右は左のピクセルより遅れる傾向があります: 力ずくのアプローチとして、1.5Hzを中心とするノッチフィルターを使用して、時間領域の各ピクセルをフィルターに掛けてみました。臨界周波数1.46および1.52Hzの4次バターワースフィルターを使用しました(フィルターの設計に精通していないため、より適切な選択肢があると確信しています)。 フィルタリング後の平均ピクセル信号は次のようになります。 そして対応するピリオドグラム: ノッチフィルターは、アーティファクトを減らすのにかなり良い仕事をしますが、基本的には純粋な定常正弦波のように見えるので、周波数空間のその部分を単に減衰させるよりも上手く行けると思います。 私の最初の(非常に素朴な)アイデアは次のようなことをすることでした: ムービーの各ピクセルのフーリエスペクトルから振動の周波数、位相、振幅を取得します 時間領域で振動を再構築する 映画のフレームからそれを引く 干渉は通常スペクトル的に純粋ではなく、一時的に静止していないため、これは通常人々が行うことではないことを理解していますが、私の場合はそれが理にかなっているのではないでしょうか。 データ フル16ビットTIFFスタック(非圧縮2GB以下) 空間的に間引かれた8ビットバージョン(約35MB非圧縮)

1
PythonでGoertzelアルゴリズムを実装できませんでした
stackoverflowについて質問した後、PythonでGoertzelアルゴリズムを実装しようとしました。しかし、それは動作しません:https : //gist.github.com/4128537 import math def goertzel(samples, sample_rate, f_start, f_end): """ Implementation of the Goertzel algorithm, useful for calculating individual terms of a discrete Fourier transform. """ window_size = len(samples) f_step = sample_rate / float(window_size) # Calculate which DFT bins we'll have to compute k_start = int(math.ceil(f_start / f_step)) k_end …
7 fft  dft  python 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.