画像処理ソリューション
これを見れば画像処理の入門から基礎~応用まで全てがわかるのを目指して!
   
翻訳(Translate)

プロフィール

Akira

ニックネーム:Akira
東京都の町田事業所に勤務
画像処理ソフトの開発を行っています。リンクフリーです!
詳細プロフィールは こちら
お問い合わせは、こちら↓

【補助HP】
画像処理ソリューションWeb版 【Newブログ】
イメージングソリューション

スポンサーリンク


カテゴリ

最近のコメント

カレンダー

04 | 2008/05 | 06
S M T W T F S
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

趣味のブログ

iPhone萬歳!
iPhoneの情報いろいろ。
ブログ学習帳
ブログ、SEO、アフィリエイト情報など(まだまだこれから)
俺流クラフト日記
ハンドメイド作品の記録(現在、放置中)

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

【C++/CLI】画像の拡大縮小表示(簡易版)

C++/CLIで簡単にできる画像の拡大縮小表示を紹介します。

今回、作成したプログラムはこんな感じ↓です。

画像の拡大縮小表示

このサンプルプログラムはこちら右ボタンで対象をファイルに保存)からダウンロードできます。
(プログラムはVisualStudio2005 Express Edtionで作成していますが、VS2008でも動作すると思います。)

作成手順は本当に簡単。
下図のようにフォームの上にMenuStripPanel、Panelの上にPictureBoxと配置していきます。

画像の拡大縮小表示

Panelをクリックすると、右上に三角マークが表示されるので、それをクリックし、
親コンテナにドッキングするをクリックします。

    画像の拡大縮小表示

次にパネルとピクチャボックスのプロパティを以下のように設定します。

 panel1->AutoScroll = true;
 pictureBox1->SizeMode = System::Windows::Forms::PictureBoxSizeMode::Zoom;

■AutoScroll

trueに設定するとパネル上に配置されたコントロールコンテンツ(ピクチャボックスなど)がパネルの大きさより大きい場合は自動的にスクロールバーを表示し、コントロールをスクロールしてくれます。

■SizeMode

ピクチャボックスに設定されたイメージをどのように表示するかを設定します。

Normal画像をピクチャボックスの左上に合わせて表示します。
StretchImage画像をピクチャボックスの幅、高さに合わせて表示します。
画像の縦横比がくずれます。
AutoSizeピクチャボックスのサイズを画像サイズに合わせて変更します。
CenterImageピクチャボックスの中心と画像の中心を合わせるようにして表示します。画像サイズがピクチャボックスより大きい場合は、画像がはみ出して表示されます。
Zoom画像全体をピクチャボックス全体に表示するように画像表示サイズを変更し、ピクチャボックスの中心に表示します。
画像の縦横比はくずれません。


画像の読み込みは以前にも紹介しましたが、こんな感じ↓です。

 private: System::Void mnuFileOpen_Click(System::Object^  sender, System::EventArgs^  e) {
      //ファイルを開くダイアログの作成
     OpenFileDialog^ dlg = gcnew OpenFileDialog;
     //ファイルフィルタ
     dlg->Filter = "画像ファイル(*.bmp,*.jpg,*.png,*.tif,*.ico)|*.bmp;*.jpg;*.png;*.tif;*.ico";
     //ダイアログの表示
     dlg->ShowDialog();
     //ビットマップファイルから、Bitmapを作成
     Bitmap^ bmp = gcnew Bitmap(dlg->FileName);
     //ピクチャボックスをビットマップ画像サイズに合わせる
     pictureBox1->Width = bmp->Width;
     pictureBox1->Height = bmp->Height;
     //ピクチャボックスのImageへ
     pictureBox1->Image = bmp;
    }

あとは、ピクチャボックスの大きさを拡大縮小したい倍率に合わせて変更すれば、勝手に画像は拡大縮小し、スクロールバーは自動的に調整してくれます。

 private: System::Void mnuZoomEnlargement_Click(System::Object^  sender, System::EventArgs^  e) {
     //拡大(2倍)
     pictureBox1->Width *= 2;
     pictureBox1->Height *= 2;
    }
 private: System::Void mnuZoomReduce_Click(System::Object^  sender, System::EventArgs^  e) {
     //縮小(1/2倍)
     pictureBox1->Width /= 2;
     pictureBox1->Height /= 2;
    }

と、これだけ!
本当に簡単にすごいことができちゃいます。

ただし、大きい画像やモノクロ画像の上に文字や線などを表示したい場合など、不都合な場合もあります。
この場合はDrawImageを使えばいいのですが、その方法は

画像の拡大縮小表示(高機能版)のページで紹介しています。


Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

【C++/CLI】Format16bppGrayScaleは使えるのか?実験してみた。

GoogleでFormat16bppGrayScaleを検索してみると、
Format16bppGrayScale not supported だとか、バグだとかの情報が海外のサイトでは多く見受けられ、本当に使えないのか?どこまで使えるのか?
確認してみました。

もし、バグなら最新版で直されているのを期待して、評価環境は以下のとおりです。
■WindowsVista SP1
■Visual C++ 2008 Express Edition
■.NET Framework 3.5

1. 16Bitモノクロビットマップ(ビットフィールド)を開くことはできるか?

評価用に使用したビットマップファイルは
■BITMAPINFOHEADER のbiCompressionがBI_BITFIELDS
■BITMAPINFOHEADER のbiBitCountが16
■カラーテーブル(bmiColors)は3つ確保
で、16Bit中の12Bitおよび16BitをBitfieldで有効にしたビットマップファイルで確認を行いました。

Bitmap^ bmp = gcnew Bitmap(“16Bitのビットマップファイル”);

とすると、bmpは
  PixelFormat はFormat32bppRgb
  Palette->Entries->Length  = 0 
となります。

これを無理矢理

Imaging::BitmapData^ bmpData = bmp->LockBits(rect, Imaging::ImageLockMode::ReadWrite, Imaging::PixelFormat::Format16bppGrayScale);

とすると、

'System.ArgumentException' のハンドルされていない例外が System.Drawing.dll で発生しました。
追加情報: 使用されたパラメータが有効ではありません。


というエラーメッセージが表示されてしまいます。
そこで、

Imaging::BitmapData^ bmpData = bmp->LockBits(rect, Imaging::ImageLockMode::ReadWrite, Imaging::PixelFormat:: Format32bppRgb);

とすれば、Bitfieldで指定したビット中の上位8Bitの輝度値が各R,G,Bに格納されている事が確認できました。
でも、これはやっぱりいまいち・・・

2. 新規にFormat16bppGrayScaleのBitmapを作ることはできるか?

Bitmap^ bmp = gcnew Bitmap(pictureBox1->Width, pictureBox1->Height, Imaging::PixelFormat::Format16bppGrayScale);

エラーはなし。bmpを確認してみると

  PixelFormat はFormat16bppGrayScale
  Palette->Entries->Length  = 0

となりました。
でも、Bitfieldはどこで設定すればいいのだろう???

3. Format16bppGrayScaleのBitmapに輝度値を設定できるのか?

評価用に作成したプログラムは以下のとおり

int BmpWidth = 640;
int BmpHeight = 480;

Bitmap^ bmp = gcnew Bitmap(BmpWidth, BmpHeight, Imaging::PixelFormat::Format16bppGrayScale);
Rectangle rect = System::Drawing::Rectangle(0, 0, bmp->Width, bmp->Height);
//Lock
Imaging::BitmapData^ bmpData = bmp->LockBits(rect, Imaging::ImageLockMode::ReadWrite, bmp->PixelFormat);
UInt16* pBuf = (UInt16*)bmpData->Scan0.ToPointer();
//輝度値の設定
for (int j = 0; j < BmpHeight; j++){
  for (int i = 0; i < BmpWidth; i++){
    pBuf[i + j * bmpData->Stride / 2] = i % 1024;
  }
}
//Unlock
bmp->UnlockBits(bmpData);

エラーはなし。そこで毎度のようにbmpを確認してみると

  PixelFormat はFormat16bppGrayScale
  Palette->Entries->Length  = 0 
  bmpData->Stride = 1280

となりました。
カラーパレット以外は期待通り。輝度値のデータ設定できるようです。

4. Format16bppGrayScaleのBitmapを表示することはできるのか?

Bitmap^ bmp = gcnew Bitmap(640, 480, Imaging::PixelFormat::Format16bppGrayScale);
pictureBox1->Image = bmp;

とすると、

'System.ArgumentException' のハンドルされていない例外が System.Drawing.dll で発生しました。
追加情報: 使用されたパラメータが有効ではありません。


というエラーメッセージが表示されます。
そこで、モノクロのビットマップの表示のときにやったように、DrawImageを使って

Bitmap^ bmp = gcnew Bitmap(640, 480, Imaging::PixelFormat::Format16bppGrayScale);
//PictureBoxと同じ大きさのBitmapクラスを作成する。
Bitmap^ bmpPicBox = gcnew Bitmap(pictureBox1->Width, pictureBox1->Height);
//空のBitmapをPictureBoxのImageに指定する。
pictureBox1->Image = bmpPicBox;
//Graphicsクラスの作成(空のピクチャボックスからGraphicsを作成する)
Graphics^ g = Graphics::FromImage(pictureBox1->Image);
//PictureBoxへBitmapを描画する。
g->DrawImage(bmp, 0, 0);

としてみてもDrawImageのところで同じエラーメッセージが出てしまいました。
ということで、描画は完全にダメっぽい。

5. 個人的な結論

  • 16BitのBitFieldモノクロビットマップファイルは各R,G,Bの輝度値(8Bit)が同じ32Bitのビットマップ(Format32bppRgb)として扱われる。
  • Format16bppGrayScaleのBitmapを作ることはできる。輝度値の設定もできる。でも、Bitfieldは設定できない。
  • Format16bppGrayScaleを表示することはできない。

    ということで、やっぱりBitmapの表示はこれまで親しんできたStretchDIBitsとかのWin32APIを使って表示するしかないのかな~?
    MSDNを見る限り、あたかもできそうなことを書いてありますが、ぜんぜん使えそうにありません。

    どなたか、Format16bppGrayScaleを.NETのみで表示まで行う方法をご存知の方はいらっしゃいますか?
    また、Format16bppGrayScaleはどうやって扱っていますか?
    これまでやったことのある方は教えて下さい。よろしくお願いします。

    参考までに多ビット(10Bit、12Bit)画像データの表示、フォーマット
    のページの最後に部分に評価用サンプルとして10Bitモノクロビットマップファイルを
    置いておきました。

Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

【C++/CLI】別プロジェクトのフォームをプロジェクトに追加する

別のプロジェクトで作成したフォーム(*.hファイル)をプロジェクトに追加する方法です。

まずは、追加するフォームのファイル(*.h と *.resX)をソリューションエクスプローラ
ヘッダーファイルのフォルダを右クリックし、追加既存の項目で2つのファイルとも追加します。

フォームの追加

しかし、このままだと下図のように、*.hファイルと*.resXファイルが同一階層に追加されてしまいます。
(*.resXファイルは*.hファイルの下に追加したい。)

フォームの追加

そこで追加したヘッダファイル(ここではForm2.h)を選択し、プロパティウィンドウのファイルの種類のプロパティをC++ フォームに変更します。

フォームの追加

するとリソースファイル(*.resX)は自動的にヘッダファイルの下の階層に追加されます。

フォームの追加


Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

’08画像センシング展に出展します!

 目次ページへ

2008/6/11(水)~13(金)にパシフィコ横浜で開催される画像センシング展に私の会社が出展します。
入場は無料ですので、是非ともご来場下さい。
招待状をお持ちで無い方は受付で名刺2枚を提示すると入場できるようです。
【画像センシング展ホームページ】
http://www.adcom-media.co.jp/sensing/

私が担当するのは
画像処理ツール AZP-8100
■自己学習型ロバスト欠陥検査ソフト AZP-8200 (参考出展)
です。

企業の方は私の会社の問い合わせ先
http://www.avaldata.com/address/address.html
でも構いませんので、どしどしご意見、ご要望、ご質問お待ちしております。

無事、3日間の展示会が終了しました。
たくさんのご来場頂き、ありがとうございました。

自己学習型ロバスト欠陥検査ソフト(AZP-8200-01)に関しては
まだ、会社のホームページが間に合っておりませんので、ご質問等があれば
弊社ホームページの問い合わせ先

http://www.avaldata.com/products/y5_preliminary/preliminary.html

より、お気軽にお問い合わせ頂ければ幸いです。


Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

標準偏差

■標準偏差とは?

標準偏差(Standard Deviation【略】SD)はデータの散らばりぐらいを示す値で σであらわされます。
測定誤差やノイズなどの評価値として用いられます。

標準偏差

標準偏差の計算

標準偏差は各データを各データ、データの平均値をデータの平均値とすると

  分散

を分散といいます。分散の平方根

  標準偏差の公式

が標準偏差となります。

この式で数学的には問題は無いのですが、式を見ても分かるように全データから平均値を求めてから各データとの差を求めるため、プログラム的には全データを2回参照することになるため、あまりよろしくありません。
そこで、分散の式を以下のように変形します。

  分散の式の変形

ここで平均値データの平均値

  平均値の式

で求まることから、分散の式は

  分散の式の変形

となり、この式を用いて分散、標準偏差のプログラムを作ると、全データを1回の参照で済むので、より効率的になります。

ポイント!!

分散 = 2乗の平均 - 平均の2乗

標準偏差 = 分散の平方根

■正規分布

下図のように、平均値付近にデータの出現頻度が集中し、頻度に偏りが無く、平均値に対して左右対称で、平均値から遠くなればなるほど頻度が少なくなる状態を
正規分布にしたがうといいます。

正規分布

この頻度を関数であらわすと

  ガウス分布

となります。
正規分布はガウス分布とも呼ばれ、画像処理のフィルタ処理にも使われます。

正規分布にしたがう場合のデータは下図のような割合で分布します。

正規分布の割合

この特性から、測定器の測定精度やカメラで撮影した画像のノイズレベルなどにおいて1σや3σなどであらわされる場合があります。

 


Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

カラーラインセンサカメラのしくみ(3CCD、3ライン)

 目次ページへ

カラーラインセンサには3CCD方式と3ライン方式があります。
最近では3ライン方式のカラーラインセンサが多くなっていますが、それぞれのカメラの仕組や特徴を説明したいと思います。

■3CCD方式

CCD方式についてはエリアセンサでもおなじみなので、ご存知の方も多いかと思いますが、下記のような仕組みになっています。
  3CCD方式カラーラインセンサカメラ
ダイクロイックプリズムでR,G,Bに分光して、各色用のラインセンサで撮影します。

【長所】
●色再現性がよい

【短所】
●高価格
●カメラが大きくなりやすい

■3ライン方式

3ライン方式カラーラインセンサカメラ

R,G,B用の3つのラインCCDセンサが1つのパッケージ内に配置されています。

【長所】
●低価格
●カメラが小型化可能

【短所】
(注意点!)
●色の再現性が悪くなりがち
●被写体の動きと同期が必要
●被写体の送りの向きとカメラのアライメントを合わせる必要がある

■3ライン方式のカラーラインセンサカメラの撮影システム
3ラインカラーラインセンサカメラ
3ライン方式の場合、1回のスキャン(各R,G,Bラインの同時撮影)で、R,G,Bそれぞれズレた位置を撮影するので、送り速度がばらつくとR,G,Bのズレを補正するのが困難となるため、通常は被写体の送り速度と連動するようにエンコーダ信号と同期させて撮影します。

単純に撮影した画像は下図のようになります。
  3ライン方式の撮影画像

R,G,Bそれぞれズレた位置を撮影しているので、撮影した画像もズレてしまいます。
このズレをカメラ内部で補正するものや、キャプチャボード内で補正するものなどがあります。
補正すると下図のようになります。
  RGB補正画像

このR,G,Bの補正量は、カメラのスキャンレート、使用しているレンズの倍率などにより異なるので、実機に組み込んだ状態で調整する必要があります。

また、R,G,Bの補正はY方向に何画素ズラすかで設定する(X方向のズレは補正できない)のが一般的なので、被写体の送り方向とカメラのセンサの向きが90度方向に設置されている必要があります。
下図のようにカメラが斜めっていると、色がにじんだように見えます。

  カメラのアライメント

カメラは正確に90度になるように配置して下さい。

   カメラのアライメント

最近(2008年5月現在)では、RとGとBのラインセンサの間隔が狭くなり、多少カメラが傾いていても、色のにじみは少なくなるように、なってきています。

 ■カメラ調整方法
実際の撮影と同じ状態(スキャンレート、レンズ、送り速度など)で、できれば白黒の被写体を撮影します。すると下図のようになります。(カラーの被写体を撮影すると、ズレ量が分かりづらくなります。)

   カメラの調整方法

この状態で、カメラないしボードの補正値を調整し、Y方向(縦方向)に色のにじみが無いように調整します。それでもX方向(横方向)に色のにじみがある場合は、カメラの配置角度を調整するようにして下さい。

■デュアルライン方式?

正式には何方式?というのかは分かりませんが、最近、エリアセンサにおけるBayerパターンの
ラインセンサ版とでも言えそうなデュアルライン方式がDALSAより発表されました。
センサの並びはこんな感じ↓

DualLineColorLineSensor

詳細はDALSAのホームページを参照下さい。


ラインセンサのメーカについては光学部品/カメラバイヤーズガイドを参照下さい。


Loading...
スポンサーリンク



現在の閲覧者数: / 合計