関数 > 画像処理 > 画像の操作 > 例: 関数とレベルのマッピング
例: 関数とレベルのマッピング
funmap関数とlevelmap関数を使用して、輝度の関数をマップするか、新しい輝度レベルのベクトルを既存の画像にマップします。関数またはレベルをマップすることで、画像または画像変換で輝度レベルが一様に変換されます。等化と同様に、これらの関数を使用して、画像の表示を最適化することもできます。
この例の使用方法については、画像処理の例についてを参照してください。
funmap
この関数は、定義済みの関数を行列の各要素に適用します。
1. テスト行列を作成します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
2. 関数を定義します。
クリックしてこの式をコピー
3. funmap を呼び出して、関数 f を行列 M の各要素に適用します。
クリックしてこの式をコピー
ベクトル化演算子を使用することによっても、同じ結果を得ることができます。
クリックしてこの式をコピー
4. サンプル画像を読み込みます。
クリックしてこの式をコピー
5. 新しい関数を定義します。
クリックしてこの式をコピー
6. funmap を呼び出して、関数 f を画像 R に適用します。Re 関数を使用して、返されたすべての値を実数にします。
クリックしてこの式をコピー
7. 元の画像と変換された画像を比較します。
クリックしてこの式をコピー
(arcs.bmp)
(arcs_fm.bmp)
8. 関数 f の定義を変えて何種類かの変換を行います。
クリックしてこの式をコピー クリックしてこの式をコピー
クリックしてこの式をコピー
(arcs_fm2.bmp)
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
(arcs_fm3.bmp)
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
(arcs_fm4.bmp)
levelmap
levelmap 関数は、画像の輝度を、ベクトル vec によって与えられた輝度レベルに置き換えます。たとえば、vec の 100 番目の成分には、輝度が 100 のピクセルの新しい輝度レベルが格納されています。
0 < M のエントリ < (vec - 1)
1. 輝度を二乗することで画像を補正するため、次のベクトルを作成します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
2. 表示にむらのある画像の輝度をその正確な値にマップするレベルマップを定義します。
次の行列を使用します。
クリックしてこの式をコピー
レベルマップは次のとおりです。
クリックしてこの式をコピー
3. levelmap をサンプル画像に適用し、その効果を確認します。
クリックしてこの式をコピー
クリックしてこの式をコピー
(arcs_level.bmp)
これは役に立ちましたか?