lineprofile.exe の使い方の詳細



lineprofile.exe の使い方に関して、説明します。
lineprofile.exe は、”タスクバーを自動的に隠すモードで使用することを前提としています。


起動方法

1、” コマンド プロンプト” 等の端末ソフトから、直接コマンド名を指定して起動します。 図2 の画面が
    立ち上がります。  コマンドラインに、BMPファイル名を引数として与えた場合は、起動と同時に、
    指定されたBMPファイルを表示します。 図5

    図 1


    図 2

2、"エクスプローラ" から起動する場合は、lineprofile.exe のアイコンをダブルクリックします。
    図4 の画面が立ち上がります。 


    図 3


    図 4

3、"エクスプローラ" 等から、lineprofile.exe のアイコンに対して、BMPファイルを Drag & Drop
   します。 lineprofile.exe が起動すると同時に、指定されたBMPファイルが表示します。 図5

    図 5

4、新しいBMPファイルを表示させる時は、プログラムの画面に表示させたいBMPファイルを
     Drag & Drop します。



ラインプロファイルと情報表示

画像中の任意の場所をマウスの左ボタンでクリックすると、その座標を含むX軸と、Y軸の輝度情報を、
ラインプロファイルとして、表示します。 画面の右端が、Y軸方向の輝度情報を表示する時の 0 を、画像と
の境界部が、255 を表します。 また、画面の最下部が、X軸方向の輝度情報を表示する時の 0 を、表し、
画像との境界部が、255 を表します。 

画面の右下には、表示環境や、表示している画像の情報、指定した座標に関連した情報が表示されます。
上方部から順に以下の情報が表示されます。
 1、表示中の画像の、フルパス名を表示します。(表示可能な文字数分)
 2、表示中の画像の、ファイル名を表示します。(表示可能な文字数分)
 3、表示中の画像の、ファイルサイズをバイトで表示します。
 4、表示ディスプレイの解像度を表示します。
 5、表示している画像部の X軸方向の大きさ、 Y軸方向の大きさ
 6、表示中の画像の実際の、X方向の大きさ、Y方向の大きさ、画素当りのビット数
 7、画面上で指定された位置に対応するファイル中での位置。ファイル中の画像データ部先頭からの位置算出用
 8、読み込まれた、画像データのメモリ上の座標位置
 9、指定された座標の輝度情報 R,G,Bの各値の 10進表示と16進表示
10、指定された座標の値(4バイト)を符号無し整数として扱った時の値 10進表示と16進表示(ラベルデータ用)
11、ラベルデータを強制的に画像データとして読み込んだ場合に使用: ラベル値を擬似カラーに変換する時の値
12、ラベルデータを擬似カラー変換した画像を読み込んだ場合に使用: 擬似カラー情報から元のラベル値に変換


操作

・BMPファイルの表示
BMPファイルを表示する、通常の使用方法です。


表示されている画像上の任意座標を、マウスの左ボタンでクリックするとラインプロファイルを表示します。

キーボードの矢印キーを使って、指定座標を微調整できます。
ラインプロファイルの表示中にマウスの右ボタンをクリックすると表示は終始されます。
マウスカーサーをドラッグしながら、ラインプルファイルや情報表示部に移動しても描画は中止します。


上の例で表示されているカラー画像を濃淡画像に、次の変換式を用いて変換した画像を表示しています。
出力画素(グレー画像) = (0.299 * R成分 + 0.587 * G成分 + 0.114 * B成分)
ラインプロファイルは、同じ座標を表示しています。 注意して見て頂くと、上のカラー画像では値を
持っている部分が、濃淡画像に変換した時に 0 になっている部分がある事が判ります。
これは、上記の変換式でカラー画像を濃淡画像に変換する場合に、カラー画像では 輝度が 0 で
ない部分が濃淡画像では 0 になってしまう部分があることを示しています。
これは、ラベリング処理する時に予期せぬ問題が起こる場合がある事を示しています。




ラベルデータを強制的にBMPファイル化したデータを表示
        Ex.  copy /B  labelingCryst.cfg + labelingCryst.lbl  labelingCryst.bmp
ラベル値は、青い画像として表示されます。これは、符号無し4バイト整数のラベルデータを、
カラー情報 RGBQUAD に見立て、画像データとして強制的に表示させている事に 起因します。
ラベルデータは、1から始まる自然数なので rgbBlue から埋められていきます。
union PIXEL
{
  unsigned int  label ;
 
RGBQUAD       color ;
}PIXEL ;

sizeof(unsigned int) ≡ 4
typedef struct tagRGBQUAD {
  BYTE  rgbBlue;
    // unsigned char
  BYTE  rgbGreen;    // unsigned char
  BYTE  rgbRed;      // unsigned char
  BYTE  rgbReserved; // unsigned char
} RGBQUAD ;


マウスの左ボタンで対象物をクリックすると、unsigned int: の欄には ラベル値(例、166)が表示されます。
また、label2pseudo: 欄には擬似カラーとして使用する RGBQUAD の 値(例、0x00C0A000)が表示されます。



・ラベルデータを、擬似カラーBMPファイルに変換し表示
Label2colorBMP.exe コマンドにより、ラベルデータを擬似カラー画像化し、BMPファイルとして保存した
データを表示しています。 対象物毎に異なる色が割り当てられています。 隣接する対象物には、似た
色が割り当てられないように工夫されています。



マウスの左ボタンで擬似カラー表示されている対象物をクリックすると、unsigned int: の欄には擬似カラーの
値(例、0x00C0A000)が表示されます。
また、pseudo2label: 欄には擬似カラー変換される前のラベルの値(例、166)が表示されます。




補足資料

1、1A BMPファイルの構成
2、1B ラベリンファイルの構成
3、原画 BMPファイル
4、カラー画像を濃淡画像に変換し BMPファイル
5、ラベルデータを強制的に画像ファイル化 BMPファイル
     (copy /B labelingCryst.cfg +labelingCryst.lbl labelingCryst.bmp )
6、擬似カラー変換処理済み画像 BMPファイル