1

私のアルゴリズムの特徴抽出ステップでは、「3D」画像にフィルターを適用し、フィルター処理されたピクセルの値を画像の元のピクセルの特徴として使用します。

私の問題は、すべての画像ではなく、ピクセルの小さなサブセット(しきい値処理されたピクセル)のみの機能が必要なことです。また、一部のピクセルだけでなく、画像全体をフィルタリングするには時間がかかります。

私の質問は、画像の選択したピクセルのみをフィルタリングするにはどうすればよいですか? この目的のためのmatlab関数はありますか?(私はimfilterを使用できないと思います)

ありがとうございました。

4

2 に答える 2

4

を使用しroifilt2ます。次のコードは、 Matlab ドキュメント サイトから直接取得したものです。

I = imread('eight.tif');

まず、関心領域を定義します。

c = [222 272 300 270 221 194];
r = [21 21 75 121 121 75];
BW = roipoly(I,c,r);

あなたの場合、BWは既に定義されているため、前の手順をスキップできます。

次に、フィルターを適用します。

H = fspecial('unsharp');
J = roifilt2(H,I,BW);
figure, imshow(I), figure, imshow(J)
于 2012-05-09T20:45:49.907 に答える
2

以下は、画像にしきい値を適用する Matlab での高速行列演算です。

% let's assume i is your image (matrix)
thresh = 60; % set the threshold for pixel values
i = uint16(i > thresh) .* i; % adjust uint16 to your: class(i)

0これにより、しきい値を下回るすべてのピクセルが設定されます。
後でフィルターをより小さな領域に適用する場合は、画像のどの列と行にゼロより大きい値が含まれているかを確認し、それに応じて画像をトリミングするか、 を使用して関心領域を定義できますroipoly

于 2012-05-09T20:37:58.670 に答える