ヘルプ センターヘルプ センター
このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
2 次元イメージのフラットフィールド補正
J = imflatfield(I,sigma)
J = imflatfield(I,sigma,mask)
J = imflatfield(___,'FilterSize',filterSize)
例
J = imflatfield(I,sigma) はフラットフィールド補正をグレースケール イメージまたは RGB イメージ I に適用します。この補正は、標準偏差が sigma のガウス平滑化を使用して I のシェーディング成分を近似します。補正後のイメージが J に返されます。
J
I
sigma
J = imflatfield(I,sigma,mask) はバイナリ マスクが true の場合のみ、フラットフィールド補正をイメージ I に適用します。マスクが false の場合、出力イメージ J にはイメージ I の変更されていない値が含まれます。
mask
true
false
J = imflatfield(___,'FilterSize',filterSize) はガウス平滑化フィルターのサイズを指定します。
filterSize
すべて折りたたむ
グレースケール イメージを読み込みます。このイメージには、左側と右上隅に著しいシェーディング歪みがあります。
I = imread('printedtext.png'); imshow(I) title('Distorted Image')
フラットフィールド補正を実行します。
sigma = 30; Iflatfield = imflatfield(I,sigma);
結果を表示します。補正後のイメージの明度はより一様になります。
imshow(Iflatfield) title(['Flat-Field Corrected Image, \sigma = ',num2str(sigma)])
口径食またはコーナーの暗化があるカラー イメージを読み込みます。
I = imread('fabric.png'); imshow(I) title('Image with Vignetting')
sigma = 20; Iflatfield = imflatfield(I,sigma);
カラー イメージを読み込みます。このイメージでは、右下隅にシェーディング欠陥があります。
I = imread('hands1.jpg'); imshow(I) title('Image with Dark Corner')
イメージ全体にフラットフィールド補正の適用を試みます。
sigma = 25; Iflatfield = imflatfield(I,25); imshow(Iflatfield) title(['Flat-Field Corrected Image, \sigma = ',num2str(sigma)])
コーナーにあるシェーディング欠陥は補正されましたが、イメージの中心が明るすぎて手の色が変化しました。この明るさのアーティファクトを避けるには、フラットフィールド補正をイメージの背景にのみ適用します。
このイメージのマスクを読み込みます。元のマスク maskHand で、セグメント化された手が関心領域 (ROI) です。背景が ROI になるようにマスクを反転させます。マスクを表示します。ROI は白で表示されます。
maskHand
maskHand = imread('hands1-mask.png'); maskBackground = ~maskHand; imshow(maskBackground) title('Background Mask')
マスク maskBackground を使用してイメージの背景のフラットフィールド補正を実行します。手はマスクの関心領域ではないため、フラットフィールド補正は手のピクセルには適用されません。
maskBackground
Iflatfield2 = imflatfield(I,sigma,maskBackground);
補正したイメージを表示します。コーナーにあるシェーディング欠陥が補正され、手の元の色が維持されます。
imshow(Iflatfield2) title(['Flat-Field Corrected Background, \sigma = ',num2str(sigma)])
歪んだイメージ。m 行 n 列の 2 次元グレースケール イメージまたは m x n x 3 の 2 次元 RGB イメージとして指定します。
データ型: single | double | int16 | uint8 | uint16
single
double
int16
uint8
uint16
ガウス平滑化フィルターの標準偏差。正の数値または正の数値の 2 要素ベクトルとして指定します。スカラーを指定した場合、imflatfield は正方形ガウス カーネルを使用します。
imflatfield
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
int8
int32
int64
uint32
uint64
バイナリ マスク。m 行 n 列の 2 次元の数値行列または logical 行列として指定します。数値入力の場合、非ゼロのピクセルは 1 (true) であると見なされます。
1
ガウス フィルターのサイズ。正の奇数の整数のスカラーまたは 2 要素ベクトルとして指定します。スカラーを指定した場合、imflatfield は正方形フィルターを使用します。既定のフィルター サイズは 2*ceil(2*sigma)+1 です。
2*ceil(2*sigma)+1
補正後のイメージ。入力イメージ I とサイズとデータ型が同じである 2 次元グレースケール イメージまたは RGB イメージとして返されます。
I が RGB イメージの場合、imflatfield は rgb2hsv を使用してイメージを HSV 色空間に変換し、フラットフィールド補正を HSV 値チャネルに適用します。hsv2rgb を使用すると、イメージは RGB 色空間に戻されます。
rgb2hsv
hsv2rgb
mask を指定した場合、imflatfield はマスクを膨張させてイメージ境界をパディングし、フラットフィールド推定時のエッジ アーティファクトを低減させます。
R2018b で導入
rgb2hsv | hsv2rgb
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office