タグ付けされた質問 「image-processing」

一般に、画像処理は、写真やビデオフレームなどの入力が画像である信号処理の任意の形式です。

3
フーリエ法による断層再構成のこのコードの何が問題になっていますか?
私は最近、断層撮影再構成アルゴリズムで遊んでいます。私はすでに、FBP、ART、SIRT / SARTのような反復スキーム、および直線線形代数(遅い!)を使用した素晴らしい実装を持っています。 この質問はそれらのテクニックのどれについてもありません ; 「誰がそのようにするのか、代わりにいくつかのFBPコードがある」という形式の答えは、私が探しているものではありません。 このプログラムで次にやりたいことは、「セットを完了し」、いわゆる「フーリエ再構成法」を実装することでした。これについての私の理解は、1D FFTをサイノグラムの「露出」に適用し、それらを2Dフーリエ空間の放射状の「車輪のスポーク」として配置することです(これは、中央スライス定理から直接従うのが便利なことです) 、それらのポイントからその2D空間の通常のグリッドに内挿し、逆フーリエ変換して元のスキャンターゲットを復元できるようにする必要があります。 簡単に聞こえますが、元のターゲットのように見える再構築を得ることができなかったのです。 以下のPython(numpy / SciPy / Matplotlib)コードは、私がやろうとしていることを思いつくことができる最も簡潔な表現です。実行すると、次が表示されます。 図1:ターゲット 図2:ターゲットのサイノグラム 図3:FFT処理されたサイノグラムの行 図4:一番上の行は、フーリエ領域のサイノグラムの行から補間された2D 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, and resolution of Fourier …

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

1
画像の相関と畳み込みの違いは?
画像のフィルターによって行われる相関と畳み込みの違いは何ですか? 信号処理の定義の意味では、畳み込みはLTIシステムの出力を表すことを知っています。つまり、LTIシステムが入力システムとの畳み込みにより出力を生成する場合、出力信号は畳み込みの結果として記述することができます入力信号とLTIシステムのインパルス応答。相関に関しては、信号間の類似性を記述します。しかし、畳み込みと相関は画像にどのように影響し、効果の点でどのように違いますか? ありがとう

4
Canny Edge Detectorの制限は何ですか?
エッジ検出アルゴリズムおよびエッジ検出を使用するアプリケーションに関する文献の大部分は、キャニーのエッジ検出器を参照しています。エッジ検出のほぼ「解決策」のように見えるほどです。確かに、ノイズのバランスを取り、エッジを保存するのに最適です。 しかし、単純な好奇心として、Cannyのエッジ検出器に関心のある領域はありますか?または、Cannyが最適ではないアプリケーションの領域はありますか? これに関連して、実装の高速化はそれほど重要ではありません。エッジ検出器の良し悪しは、生成されるエッジの品質と有用性に焦点を当てる必要があります。 また、私は実際に実装固有の問題に焦点を合わせていません。アルゴリズムに固有のより理論的な制限または特性を探しています。

5
カメラからの2つの写真を比較して、動きを検出するのに十分な違いがあるかどうかを確認するにはどうすればよいですか?
電話をCCTVシステムとして使用して、家の部屋を制御し、何かが動いているときにアラートを表示したい。 今のところ、私が成功したのは、毎分画像を取​​得し、PHPスクリプト経由でサーバーにアップロードすることです。ここで、現在の写真と1分前の写真を比較して、誰かが部屋に入ったかどうかを検出したいと思います。したがって、基本的には、写真のピクセルの違いを比較する必要があります(ただし、雲が1分間に挨拶し、明るさを変えただけであることも考慮に入れます) 誰がそれを達成するか、または読むためのドキュメントの手がかりを持っていますか?

3
線形フィルターと非線形フィルターの違いは何ですか?
平均フィルターは線形フィルターと呼ばれ、中央値フィルターは非線形フィルターと呼ばれますか?平均および中央値フィルターの動作方法は理解していますが、線形および非線形という用語とは関係がありませんでした。例を挙げて説明してください。

3
ガウスぼかし-標準偏差、半径、カーネルサイズ
GLSLにガウスぼかしフラグメントシェーダーを実装しました。私はそのすべての背後にある主要な概念を理解しています:畳み込み、線形性を使用したxとyの分離、半径を増やすための複数のパス... まだいくつか質問があります: シグマと半径の関係は何ですか? シグマは半径に相当することを読みましたが、シグマがピクセルでどのように表現されるかわかりません。または、「半径」は単なるピクセルの名前ではなく、シグマの名前ですか? シグマを選択するにはどうすればよいですか? シグマを増やすために複数のパスを使用することを考慮して、所定のパスで必要なシグマを取得するために適切なシグマを選択するにはどうすればよいですか?結果のシグマがシグマの平方和の平方根に等しく、シグマが半径に等しい場合、希望する半径を取得する簡単な方法は何ですか? カーネルの適切なサイズはどのくらいですか?また、シグマとどのように関連していますか? ほとんどの実装が5x5カーネルを使用するのを見てきました。これはおそらく、適切な品質の高速実装に適した選択肢ですが、別のカーネルサイズを選択する別の理由はありますか?シグマはカーネルサイズとどのように関連していますか?私のカーネルの外の係数が無視でき、正規化されるように、最良のシグマを見つける必要がありますか?

3
SNRとPSNRの違い
SNRは信号電力とノイズ電力の比であることがわかりました。画像に関しては、追加されたノイズが元の画像にどのように影響するか。PSNRでは、画像のピーク値の2乗(8ビット画像の場合、ピーク値は255)を取り、それを平均2乗誤差で除算します。SNRとPSNRは、再構成後の画像の品質を測定するために使用されます。SNRまたはPSNRが高いほど、再構成が良好であることを理解しています。私が理解していないのは、SNRとPSNRが、再構成された画像に関する結論に関してどのように異なるかです。 同じ画像のSNRを結論付けることができないと、画像のPSNRは何を結論づけますか? PSNRの結論がSNRの結論とどのように異なるのでしょうか?

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要素未満になるので、自分自身はわかりません。それでは、どのように機能し、データポイントを滑らかにするのにどのように役立ちますか?または、データの平滑化を行うことができる他の方法はありますか? 編集:フォローアップの質問へのリンク

4
画像から影を削除するにはどうすればよいですか?
この画像があります 画像から影を取り除きたいです。特定の形態学的操作などのさまざまな方法を使用して、シャドウを削除していることを知っています。 同じ画像用にこのマスクを作成しました 私が作成したこのマスクを使用して試すことができる他の方法はありますか? 編集: 要求されたものと同じサイズの入力画像とマスク: 編集2:1D不変画像を生成しましたが、完璧ではありません I = imread('shadow.jpg'); J = im2double(I); R = J(:,:,1); G = J(:,:,2); B = J(:,:,3); [len,wid] = size(R); % Generation of 2-D Log Chromaticity Image. for i = 1:len for j = 1:wid if ((R(i,j)*G(i,j)*B(i,j))~= 0) c1(i,j) = R(i,j)/((R(i,j)*G(i,j)*B(i,j))^(1/3)); c2(i,j) = G(i,j)/((R(i,j)*G(i,j)*B(i,j))^(1/3)); c3(i,j) …

2
この特定のシフト/スケール不変テンプレートマッチングに最適な画像処理技術は何ですか?
ここで最初に説明した問題は進化しており、さらに詳しく調べて新しい情報を得たため、少し簡単になったかもしれません。 結論として、コンピュータービジョン/画像処理技術を使用して、ここに示されているこのパターンを検出できるようにしたいと思います。ご覧のとおり、理想的なパターンは4つの「ping」で構成されています。オブジェクト認識は次のようになります。 不変シフト 水平方向では、画像は周期的になります。(つまり、右に押す、左に出る、およびその逆)。 (幸いなことに)垂直的には、周期的ではありません。(つまり、上または下に押すと停止します)。 スケール不変(表示されるように、pingの「厚さ」は異なる場合があります。) 私はそれについて続けることができますが、私が意味することをカバーする画像を添付しています、以下をご覧ください: もちろん、このファミリーからわかるように、それらは異なる「スケール」でもあります。 そして最後に、実際に受信する可能性のある「現実的な」シナリオをいくつか示します。ノイズがあり、行が下に行くにつれて「フェード」する可能性があり、もちろん、画像にはたくさんの偽の線、アーチファクトがありますなど そしてもちろん、グランドフィナーレとして、この「極端な」シナリオの明確な可能性があります。 そこで、もう一度、最高の検出のためにここでどのコンピューターマシンビジョンテクニックを利用すべきかについてのガイダンスをお願いしたいと思います。パターンの発生ます。また、現実的なシナリオで適切な結果を得ることができます。(良いニュースは、回転不変である必要はないということです)。これまでに思いついたのは、2次元相関だけです。 現実には、色付きの画像がないことを付け加えます-数字の大群を取得するだけなので、「グレースケール」について話していると思います。 前もって感謝します! PSその価値のために、おそらくオープンC Vを使用します。 編集#1: コメントに基づいて、あなたがリクエストした詳細をここに追加しました: データを定義する特性については、次のことを想定できます。 各pingの水平方向の長さはさまざまですが、上限と下限はわかっています。この範囲内のすべての場合はYES、外部の場合はNO。(たとえば、pingの長さは1〜3秒の範囲であることがわかっています)。 すべてのpingは、YESの場合は「可視」である必要がありますが、最後の行が欠落している可能性があり、それでも「YES」と言いたい場合があります。そうでなければNO。 各pingの垂直方向の長さ(「厚さ」)は異なる場合がありますが、ここでも上限と下限を知っています。(これらの画像に表示されるものと同様)。その範囲内のすべてに対してはい。外のものは一切ありません。 YESの場合、各ping間の高さは常に同じである必要があります。そうでない場合、NO。(例、すべてのpingが互いに相対的に同じ高さであることがわかります(垂直軸で〜110))。したがって、110 +/- 5はYESになりますが、それ以外はNOでなければなりません。 私はそれについてだと思います-しかし、私が追加できるものを教えてください...(また、ここに示されているものはすべて、YESとして登録する必要があります)


2
キーポイント記述子を使用する理由
私はSURFについて勉強したばかりで、その実装に行きますが、それでも記述子を使用する理由がわかりませんでした。 キーポイントとその目的を理解していますが、キーポイントを抽出するとき、なぜ記述子を使用する必要があるのでしょうか?認識における彼らの重要性と役割は何ですか?

2
ボードゲームで六角形のタイルを認識する方法は?
以下の画像のように、写真の六角形のタイルの境界を認識したいと思います。 正方形のグリッドでの標準的なアプローチは、最初にコーナー(例:キャニー)を検出し、次にハフ変換などを使用して最も長い線を抽出することです。 これは、外側の線の長さが短く、他の線と区別するのが難しいため、16進タイリングでは最適なソリューションではありません。 この問題を解決するアルゴリズムはありますか?opencvで解決策があると特に便利ですが、一般的なアイデアにも興味があります。 更新: pythonとopencvを使用すると、この結果を受け取ることができました: ここに私のコードがあります: import cv2 import numpy as np imgOrig = "test1"; img = cv2.imread(imgOrig+".jpg"); lap = cv2.Laplacian(img, cv2.IPL_DEPTH_32F, ksize = 3) imgray = cv2.cvtColor(lap,cv2.COLOR_BGR2GRAY) ret,thresh = cv2.threshold(imgray,127,255,0) contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE) size = img.shape m = np.zeros(size, dtype=np.uint8) for i, cnt in enumerate(contours): if cv2.contourArea(cnt) …

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