擬似カラー化クラス
Namespace: FVIL.ConversionAssembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)
Syntax
C# |
---|
[SerializableAttribute] public class CFviPseudoColor : CFviConversion |
Visual Basic |
---|
<SerializableAttribute> Public Class CFviPseudoColor Inherits CFviConversion |
Remarks
濃淡画像を疑似カラーに変換するクラスです。
実行前にカラー変換テーブル(Table)を生成してください。
カラー変換テーブルは、
初期値指定コンストラクタ
または
Create メソッド
で生成できます。
変換は下記の式で行われます。
出力画像の濃度値 = 変換テーブル[ 入力画像の濃度値 + オフセット値 ]
オフセット値は、入力画像の型が UC8, US16 の時は 0 、
S16, D64 の時は TableSize / 2 です。
『入力画像の濃度値 + オフセット値』で計算した指標が変換テーブルの範囲外になる場合は正規化されます。
0 未満は 0 に、範囲を超える場合は TableSize - 1 に正規化されます。
変換テーブルのカラーコンポーネントは出力画像に以下のように格納されます。
-
出力画像がアンパッキング(UC8,US16,S16,D64)の場合:
- 出力画像のチャネル0 = 変換テーブルの rgbRed
- 出力画像のチャネル1 = 変換テーブルの rgbGreen
- 出力画像のチャネル2 = 変換テーブルの rgbBlue
-
出力画像がパッキング(RGB24)の場合:
- 出力画像の R = 変換テーブルの rgbRed
- 出力画像の G = 変換テーブルの rgbGreen
- 出力画像の B = 変換テーブルの rgbBlue
-
出力画像がパッキング(RGB32)の場合:
- 出力画像の R = 変換テーブルの rgbRed
- 出力画像の G = 変換テーブルの rgbGreen
- 出力画像の B = 変換テーブルの rgbBlue
- 出力画像の A = 変換テーブルの rgbReserved
要求する入出力画像数:
項目 | 数 | 定数 |
---|---|---|
入力画像 | 1 | SrcImageCount フィールド |
出力画像 | 1 | DstImageCount フィールド |
処理対象画像の条件:
処理対象の画像は下記の条件を満たしている必要が有ります。
- 入力画像と出力画像の処理範囲の幅と高さが等しい事 -
- 入力画像の画像種別とチャネル数が以下の何れか -
- 出力画像の画像種別とチャネル数が以下の何れか -
関連する FIE 関数:
fnFIE_make_pseudo_colormap
Examples
C# | Copy |
---|---|
// $Revision: 1.1 $ using System; using System.Collections.Generic; using System.Text; using System.Drawing; using fvalgcli; // FvPluginXXXX attribute requires fvalgcli namespace User.SampleCode { public partial class Conversion { // ============================================================ /// <summary> /// 擬似カラー化クラス. /// </summary> [FvPluginExecute] public void PseudoColor() { // (1) 入力画像の読み込み. FVIL.Data.CFviImage src = new FVIL.Data.CFviImage(Defs.TestImageDir + "/palette_UC8.png"); // --- 有効化オプションに対応する出力画像のサイズ情報. FVIL.ImageSize[] sizes = new FVIL.ImageSize[] { new FVIL.ImageSize(160, 120, FVIL.ImageType.UC8, 3), new FVIL.ImageSize(160, 120, FVIL.ImageType.US16, 3), new FVIL.ImageSize(160, 120, FVIL.ImageType.RGB32, 1), new FVIL.ImageSize(160, 120, FVIL.ImageType.RGB24, 1), new FVIL.ImageSize(160, 120, FVIL.ImageType.S16, 3), new FVIL.ImageSize(160, 120, FVIL.ImageType.D64, 3), }; // --- カラー変換テーブルの種別. f_colormap_type[] types = new f_colormap_type[] { f_colormap_type.F_COLORMAP_GRAY, f_colormap_type.F_COLORMAP_RED, f_colormap_type.F_COLORMAP_GREEN, f_colormap_type.F_COLORMAP_BLUE, f_colormap_type.F_COLORMAP_RAINBOW_CYCLIC, f_colormap_type.F_COLORMAP_RAINBOW7, f_colormap_type.F_COLORMAP_RAINBOW4, f_colormap_type.F_COLORMAP_RAINBOW, f_colormap_type.F_COLORMAP_LAND, f_colormap_type.F_COLORMAP_HOTCOLD, f_colormap_type.F_COLORMAP_LEAF, f_colormap_type.F_COLORMAP_KAKI, f_colormap_type.F_COLORMAP_OCEAN, }; // (2) 実行. for(int valid_option=0 ; valid_option<sizes.Length ; valid_option++) { for(int index=0 ; index<types.Length ; index++) { // (2-1) インスタンス準備. FVIL.Data.CFviImage dst = new FVIL.Data.CFviImage(); FVIL.Conversion.CFviPseudoColor parser = new FVIL.Conversion.CFviPseudoColor(src, dst, types[index], 0, 255); // (2-2) 出力画像の有効化. parser.Validate(valid_option); // (2-3) 実行. parser.Execute(); // (2-4) 視覚的な確認の為のファイル保存. string filename = ""; switch(valid_option) { case 0: case 1: case 2: filename = Defs.ResultDir + string.Format("/Conversion.PseudoColor.{0:00}.{1:00}.png", valid_option, index); break; case 3: filename = Defs.ResultDir + string.Format("/Conversion.PseudoColor.{0:00}.{1:00}.bmp", valid_option, index); break; case 4: case 5: filename = Defs.ResultDir + string.Format("/Conversion.PseudoColor.{0:00}.{1:00}.tiff", valid_option, index); break; } dst.Save(filename); } } } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System Imports System.Collections.Generic Imports System.Text Imports System.Drawing Imports fvalgcli ' FvPluginXXXX attribute requires fvalgcli Namespace SampleCode Partial Public Class Conversion ' ============================================================ ''' <summary> ''' 擬似カラー化クラス. ''' </summary> <FvPluginExecute()> _ Public Sub PseudoColor() ' (1) 入力画像の読み込み. Dim src As New FVIL.Data.CFviImage(Defs.TestImageDir + "/palette_UC8.png") ' --- 有効化オプションに対応する出力画像のサイズ情報. Dim sizes As FVIL.ImageSize() = New FVIL.ImageSize() _ { _ New FVIL.ImageSize(160, 120, FVIL.ImageType.UC8, 3), _ New FVIL.ImageSize(160, 120, FVIL.ImageType.US16, 3), _ New FVIL.ImageSize(160, 120, FVIL.ImageType.RGB32, 1), _ New FVIL.ImageSize(160, 120, FVIL.ImageType.RGB24, 1), _ New FVIL.ImageSize(160, 120, FVIL.ImageType.S16, 3), _ New FVIL.ImageSize(160, 120, FVIL.ImageType.D64, 3) _ } ' --- カラー変換テーブルの種別. Dim types As f_colormap_type() = New f_colormap_type() _ { _ f_colormap_type.F_COLORMAP_GRAY, _ f_colormap_type.F_COLORMAP_RED, _ f_colormap_type.F_COLORMAP_GREEN, _ f_colormap_type.F_COLORMAP_BLUE, _ f_colormap_type.F_COLORMAP_RAINBOW_CYCLIC, _ f_colormap_type.F_COLORMAP_RAINBOW7, _ f_colormap_type.F_COLORMAP_RAINBOW4, _ f_colormap_type.F_COLORMAP_RAINBOW, _ f_colormap_type.F_COLORMAP_LAND, _ f_colormap_type.F_COLORMAP_HOTCOLD, _ f_colormap_type.F_COLORMAP_LEAF, _ f_colormap_type.F_COLORMAP_KAKI, _ f_colormap_type.F_COLORMAP_OCEAN _ } ' (2) 実行. For valid_option As Integer = 0 To sizes.Length - 1 For index As Integer = 0 To types.Length - 1 ' (2-1) インスタンス準備. Dim dst As New FVIL.Data.CFviImage() Dim parser As New FVIL.Conversion.CFviPseudoColor(src, dst, types(index), 0, 255) ' (2-2) 出力画像の有効化. parser.Validate(valid_option) ' (2-3) 実行. parser.Execute() ' (2-4) 視覚的な確認の為のファイル保存. Dim filename As String = "" Select Case valid_option Case 0, 1, 2 filename = Defs.ResultDir + String.Format("/Conversion.PseudoColor.{0:00}.{1:00}.png", valid_option, index) Exit Select Case 3 filename = Defs.ResultDir + String.Format("/Conversion.PseudoColor.{0:00}.{1:00}.bmp", valid_option, index) Exit Select Case 4, 5 filename = Defs.ResultDir + String.Format("/Conversion.PseudoColor.{0:00}.{1:00}.tiff", valid_option, index) Exit Select End Select dst.Save(filename) Next Next End Sub End Class End Namespace |
元画像 | ||
F_COLORMAP_GRAY (濃淡) | ||
F_COLORMAP_RED (赤色) | F_COLORMAP_GREEN (緑色) | F_COLORMAP_BLUE (青色) |
F_COLORMAP_RAINBOW_CYCLIC (虹色サイクリック) | F_COLORMAP_RAINBOW7 (虹色7色) | F_COLORMAP_RAINBOW4 (虹色4色) |
F_COLORMAP_RAINBOW (虹色) | F_COLORMAP_LAND (地形図) | F_COLORMAP_HOTCOLD (赤青) |
F_COLORMAP_LEAF (葉色) | F_COLORMAP_KAKI (柿色) | F_COLORMAP_OCEAN (海色) |
Inheritance Hierarchy
System..::..Object
FVIL..::..CFviObject
FVIL..::..CFviImageParser
FVIL.Conversion..::..CFviConversion
FVIL.Conversion..::..CFviPseudoColor
FVIL..::..CFviObject
FVIL..::..CFviImageParser
FVIL.Conversion..::..CFviConversion
FVIL.Conversion..::..CFviPseudoColor