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

MATLAB(MATrix LABoratory)は数値計算環境であり、第4世代のプログラミング言語です。このタグは注意して使用してください。抜粋を参照してください。

7
画像内の正方形を見つける
OpenCVを使用して画像内の正方形を見つける必要があります(matlabやその他の問題はありません。一般的に、私はいくつかのアイデアを期待しています)。 以下のテスト画像を検討してください。 上の画像で色の付いた正方形を正確に見つける必要があります(白い長いストリップではありません)。 私がしたこと : 一般的な方法(OpenCVサンプルに付属)を適用しました。つまり、すべてのカラープレーンで輪郭を見つけ、近似し、要素数= 4をチェックします。いくつかの四角形、特に暗い四角形が検出されると、ある程度拡張されます。 次のステップは予測でした。すなわち、この配置は固定されています。そのため、いくつかが取得された場合、残りのものを予測できます。また、さらに拡張されました。しかし、精度は非常に悪かった。 しかし、ここでは予測は良い方法ではなく、最初のステップで与えられたように正確な答えを常に提供するとは限りません。 必要なもの: 1)これらの正方形をより正確に検出する他のより良い方法はありますか?または複数の方法? 1つの重要なポイントは、ここでは時間は問題ではないということです。アルゴリズムは遅くなる可能性がありますが、問題ではありません。しかし、精度が主要な基準です。 時々、画像がはるかにぼやけることがあります。 そして、私が直面した主要な問題の1つは、いくつかの正方形が背景の色とほぼ同じ色を持つことです(3列目の1番目と2番目の正方形を確認してください)。 アイデアを探して、事前に感謝します 更新: 以下は、私が得た最大の正確な結果です: もちろん、結果画像のサイズは少し変更されます。 更新2: 私は以下の回答でより良いソリューションを提供しました:https : //dsp.stackexchange.com/a/7526/818

5
この例のドキュメント画像のしきい値処理に最適なアルゴリズムは何ですか?
表示されている画像にさまざまな二値化アルゴリズムを実装しようとしています: コードは次のとおりです。 clc; clear; x=imread('n2.jpg'); %load original image %画像のサイズを変更して、後で計算作業が簡単になるようにします。 size(x); x=imresize(x,[500 800]); figure; imshow(x); title('original image'); z=rgb2hsv(x); %extract the value part of hsv plane v=z(:,:,3); v=imadjust(v); これで、niblackおよび%sauvolaアルゴリズムに必要な平均と標準偏差が見つかりました m = mean(v(:)) s=std(v(:)) k=-.4; value=m+ k*s; temp=v; niblackしきい値アルゴリズムを実装する%: for p=1:1:500 for q=1:1:800 pixel=temp(p,q); if(pixel>value) temp(p,q)=1; else temp(p,q)=0; end end end figure; imshow(temp); …

2
MATLABのfiltfiltの利点は何ですか
MATLAB filtfiltは、順方向、逆方向のフィルタリングを実行します。つまり、フィルタリング、信号のリバース、再度のフィルタリング、そして再度のリバースです。どうやらこれは位相遅れを減らすために行われたのですか?このようなフィルタリングを使用することの利点/欠点は何ですか(フィルター次数の効果的な増加につながると思います)。 (つまり、前方フィルタリングのみ)のfiltfilt代わりに、常に使用することが望ましいでしょうfilterか?これを使用する必要があるアプリケーションと使用しないアプリケーションがありますか?
30 matlab  filters  theory 

4
1D信号を外挿するにはどうすればよいですか?
ある程度の長さの信号、たとえば1000サンプルがあります。この信号を5000サンプルに拡張し、元のサンプルと同じレートでサンプリングします(つまり、長時間サンプリングし続けた場合に信号がどうなるかを予測したい)。信号は、いくつかの正弦波成分を加算して構成されています。 最初に思いついた方法は、FFT全体を取得して拡張することでしたが、これによりフレーム1001で非常に強い不連続性が残ります。また、ピーク付近のスペクトルの一部のみを使用することも検討しました。信号をいくらか改善しますが、位相が正しいことが保証されているとは思えません。この信号を拡張する最良の方法は何ですか? 以下は、私が望む理想的な方法を示すMATLABコードです。もちろん、正確に3つの正弦波成分が存在することも、正確な位相と周波数があることも事前にはわかりません。関数が連続的であること、ポイント501に移動してもジャンプしないことを確認したい、 vals = 1:50; signal = 100+5*sin(vals/3.7+.3)+3*sin(vals/1.3+.1)+2*sin(vals/34.7+.7); % This is the measured signal % Note, the real signal will have noise and not be known exactly. output_vals = 1:200; output_signal = 100+5*sin(output_vals/3.7+.3)+3*sin(output_vals/1.3+.1)+2*sin(output_vals/34.7+.7); % This is the output signal figure; plot(output_signal); hold all; plot(signal); 基本的に、緑の線が与えられたら、青の線を見つけたいです。
25 matlab  sampling 

3
彼らは古い白黒映画をどのように色付けしましたか?
私は主に信号処理の部分に興味があるので、この質問はdsp.SEにあります。 インド映画のムガール・エ・アザムがあり、1960年に白黒でリリースされ、2004年にカラーで再現されました。 どのようにして各ピクセルを完璧に色付けしましたか? 彼らは各ピクセルの色の配置を識別するためにどのようなテクニックを使用しましたか? 映画のスクリーンショットのいずれかをご覧ください。 アインシュタインの白黒写真を色付けしたいのですが。彼が当時何を着ていたのか、そして彼の服、背景などの実際の色は何だったのかを知らずに、どのようにそれを行うことができますか?
22 matlab 

3
高次フィルターのカスケードバイカッドセクションはどのように機能しますか?
私は8次のIIRフィルターを実装しようとしていますが、これまで読んだすべてのアプリケーションノートと教科書には、2次のセクションとして2を超える次数のフィルターを実装するのが最善であると書かれています。tf2sosMATLABで2次セクションの係数を取得するために使用しましたが、予想どおり、4 2次セクションの6x4係数が得られました。SOSとして実装する前は、8次フィルターには7つの以前のサンプル値を保存する必要がありました(および出力値も)。ここで、2次セクションとして実装するとき、フローが入力から出力までどのように機能するか、2つの前のサンプル値のみを保存する必要がありますか?または、最初のフィルターの出力はx_in2番目のフィルターのように送られますか?
20 filters  filter-design  infinite-impulse-response  biquad  audio  image-processing  distance-metrics  algorithms  interpolation  audio  hardware  performance  sampling  computer-vision  dsp-core  music  frequency-spectrum  matlab  power-spectral-density  filter-design  ica  source-separation  fourier-transform  fourier-transform  sampling  bandpass  audio  algorithms  edge-detection  filters  computer-vision  stereo-vision  filters  finite-impulse-response  infinite-impulse-response  image-processing  blur  impulse-response  state-space  linear-systems  dft  floating-point  software-implementation  oscillator  matched-filter  digital-communications  digital-communications  deconvolution  continuous-signals  discrete-signals  transfer-function  image-processing  computer-vision  3d 

3
ハフ変換の理解を支援
MATLABでハフ変換を機能させようとしていますが、問題があります。修正する必要のあるピークを検出する方法は非常に悪いですが、その前にハフ変換を逆にしてラインを正しく作成できるようにする必要があります。これは私が今得ているもののタイプです: 90度回転しているように見えますが、その理由はわかりません。私のハフのスペースが間違っているのか、それとも私がハフを解いて線を引くのかがわかりません。また、誰かが私のピーク検出を改善するのを助けることができますか?コードで使用されている画像はこちら %% load a sample image; convert to grayscale; convert to binary %create 'x' image (works well) a = eye(255); b = flipud(eye(255)); x = a + b; x(128,128) = 1; %image = rgb2gray(imread('up.png')) < 255; %image = rgb2gray(imread('hexagon.png')) < 255; %image = rgb2gray(imread('traingle.png')) < 255; %%% these work …

5
画像のグレアと明るさを除去する方法(画像の前処理)
画像があります 明るい白い斑点を取り除く方法はありますか?助けてください 編集: gaussianで操作し、imagescを使用して表示すると、次の出力が得られます。これは、明るい赤色の斑点を明確に示しています。 レッドチャンネル: グリーンチャンネル: 青チャンネル: 編集2: ガボールフィルターを使用した欠陥検出 そのヒストグラム: 適切なしきい値を適応的に計算する方法。

2
画像のサイズ変更は、固有のカメラマトリックスにどのように影響しますか?
サイズがHxWの画像で知られているカメラマトリックス(固有パラメーターと外部パラメーターの両方を知っています)があります。(必要な計算にこのマトリックスを使用します)。 もっと小さな画像を使いたい、例えば:(元の半分)。同じ関係を維持するために、マトリックスにどのような変更を加える必要がありますか?H2×W2H2×W2\frac{H}{2}\times \frac{W}{2} 私は、持っている固有パラメータ、(AS、回転と並進)KKKRRRTTT cam=K⋅[RT]cam=K⋅[RT]\text{cam} = K \cdot [R T] K=⎛⎝⎜ax000ay0u0v01⎞⎠⎟K=(ax0u00ayv0001)K = \left( \begin{array}&a_x &0 &u_0\\0 &a_y &v_0 \\ 0 &0 &1\end{array} \right) KKKは3 * 3です、、、およびに0.5(画像のサイズが変更された係数)を掛けることを考えましたが、ません。axaxa_xayaya_yu0u0u_0v0v0v_0

2
ノイズの多い画像データでの円の検出
次のような画像があります。 円の半径(または直径)を見つけようとしています。(matlab'sを介して)円形のハフ変換を使用imfindcircles(bw,[rmin rmax],'ObjectPolarity','bright')して、円または楕円(ノイズの少ないデータで非常にうまく機能する自家製の関数、以下を参照)に適合させてみました。 また、より明確な円を得るためにいくつかの画像処理を試しました。たとえば、以下を参照してください。 se = strel('disk', 2); bw = imdilate(bw, se); bw = bwareaopen(bw,100000); bw = edge(bw); ただし、処理された画像をいずれかの手法(ハフと円\楕円のフィッティング)にフィードすると、どちらも適切な方法で円を検出できません。 これが、私が書いたサークルファインダーのコードスニペットです(matlab)[row col] = find(bw); contour = bwtraceboundary(bw、row(1)、col(1)]、 'N'、接続性、num_points); x = contour(:,2); y = contour(:,1); % solve for parameters a, b, and c in the least-squares sense by % using the backslash …

5
非常に基本的な用語で平滑化とは何ですか
スムージングとは何ですか? Matlabには音声信号の振幅スペクトル(FFTの128ポイントの振幅)である配列があります。移動平均を使用してこれをどのように滑らかにしますか?私が理解したことから、特定の数の要素のウィンドウサイズを取り、平均を取る必要があり、これが新しい最初の要素になります。次に、ウィンドウを1つの要素だけ右に移動し、2番目の要素になる平均値を取得します。それは本当にそれがどのように機能するのですか?私がそれを行うと、最終結果では128要素未満になるので、自分自身はわかりません。それでは、どのように機能し、データポイントを滑らかにするのにどのように役立ちますか?または、データの平滑化を行うことができる他の方法はありますか? 編集:フォローアップの質問へのリンク


3
ガボールフィルターは車のへこみの検出に使用できますか?
車のへこみを検出するためのガボールフィルターに関する研究を行っています。Gaborフィルターは、パターン認識、指紋認識などに広く使用されていることを知っています。 画像があります。 MathWorks File Exchangeサイトのコードを使用して、次の出力を得ました。 これは、どういうわけか期待される出力ではありません。これは良い結果ではありません。 私のスクリプトは次のとおりです。 I = imread('dent.jpg'); I = rgb2gray(I); [G, gabout] = gaborfilter1(I, 2, 4, 16, pi/2); figure imshow(uint8(gabout)); 編集:次の画像に異なるコードを適用します: ガボールフィルターのさまざまな方向の後の出力画像: 適切に検出されているこのDENTを分離するにはどうすればよいですか?

2
freqz関数を使用せずにMATLABでバンドパスバタワースフィルターの周波数応答を手動でプロットするにはどうすればよいですか?
信号にバンドパスフィルターを適用する以下のようなコードがあります。私はDSPに精通しているので、先に進む前に舞台裏で何が起こっているのかを理解したいと思います。 これを行うには、を使用せずにフィルターの周波数応答をプロットする方法を知りたいですfreqz。 [b, a] = butter(order, [flo fhi]); filtered_signal = filter(b, a, unfiltered_signal) 出力を考えると、[b, a]これをどうすればいいですか?これは簡単な作業のように思えますが、ドキュメントやオンラインで必要なものを見つけるのに苦労しています。 またfft、他の高速アルゴリズムを使用するなど、できるだけ早くこれを行う方法を理解したいと思います。

3
Matlabでバターワースフィルターを設計し、オンラインVerilog HDLコードジェネレーターの整数としてフィルター[ab]係数を取得
Matlabを使用して、非常にシンプルなローパスバタワースフィルターを設計しました。次のコードスニペットは、私が行ったことを示しています。 fs = 2.1e6; flow = 44 * 1000; fNorm = flow / (fs / 2); [b,a] = butter(10, fNorm, 'low'); [b、a]にはフィルター係数が格納されます。オンラインHDLコードジェネレーターを使用してVerilogでコードを生成できるように、整数として[b、a]を取得したいと思います。 Matlab [b、a]の値はオンラインコードジェネレーターで使用するには小さすぎるようです(サーバー側のPerlスクリプトは係数を使用したコードの生成を拒否します)。[b、 a]適切な入力として使用できる形式。 Matlabで取得するa係数は次のとおりです。 1.0000 -9.1585 37.7780 -92.4225 148.5066 -163.7596 125.5009 -66.0030 22.7969 -4.6694 0.4307 Matlabで取得するb係数は次のとおりです。 1.0167e-012 1.0167e-011 4.5752e-011 1.2201e-010 2.1351e-010 2.5621e-010 2.1351e-010 1.2201e-010 4.5752e-011 1.0167e-011 1.0167e-012 オンラインジェネレーターを使用して、12ビットのビット幅とIまたはIIフィルター形式のフィルターを設計します。上記のリンクにある「フラクショナルビット」の意味がわかりません。 …
15 matlab 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.