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

プロフィール

Akira

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

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

スポンサーリンク


カテゴリ

最近のコメント

カレンダー

06 | 2009/07 | 08
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購入

Excel2007で画像表示

メインページエクセルテクニック集

エクセルで画像表示って何を今さら!って感じもしますが、Excel2007には条件付き書式
というのがあり、セルの値に従ってセルの書式(背景色など)を動的に変える事ができるので、
この機能を使うと、セルの1セル=1画素となるように画像を表示できるのでは?!
ということで、そのやり方を紹介します。(ただし、モノクロのみ

1.画像の輝度値のデータをエクセルに吸い出す。
  エクセルのマクロ機能を使って輝度値データを取得するとスマートなのですが、マクロは
  あまり詳しくないので、【C++/CLI】CSVファイル保存(輝度値のCSVファイル保存)
  紹介しているソフトで画像の輝度値をCSVファイルに保存して、エクセルで開きます。
  リンク先のページではプログラムのソースコードしかないので、実行ファイル(*.exe)と
  エクセルのサンプルファイルはこちらに置いておきました。
  Exeファイルの実行には.NET Framework2.0が必要です。

エクセルで画像の表示
  
2.セルの大きさを正方形にする。
  セルの大きさを高さ方向に合わせるため、セルの幅を1.63に設定します。(高さはそのまま)
  セルの幅の設定

  すると、セルの幅に対して文字の大きさが大きくなってしまうので、フォントのサイズを程度に
  調整します。
エクセルで画像表示

3.背景色の設定
  ここが最大のポイント!
  輝度値を表示しているセル全体を選択した状態で
    条件付き書式⇒カラースケール⇒その他のルール
  をクリックし、設定画面を表示します。

エクセルの条件付き書式設定

設定画面↓ 

エクセルの新しい書式ルールの設定

そこで、上図のように各種設定値を設定します。
設定値は以下の通りです。

 種類
最小値数値
最大値数値255

この設定を行うと下図のようにセルの値に従ってセルの背景色が設定されます。

エクセルの背景色の設定

表示倍率を小さくすると、セルに画像が表示されている様子が分かると思います。

エクセルで画像の表示

次回では、この機能を使いフィルタ処理を行う方法を紹介しています。
Excel2007で学ぶ画像処理の基礎のページを参照下さい。
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購入

フィルタ処理の高速化アルゴリズム(縦横に処理を分ける)

メインページ画像処理

前回、フィルタ処理の高速化アルゴリズム(重複した計算を行わない)で紹介した方法では
カーネルの値が全て同じでないと使えないので、今回はフィルタ処理を縦方向と横方向に
分けて行う事でフィルタ処理の高速化を行う方法をガウシアンフィルタを例にとって紹介します。

ガウシアンフィルタのカーネルには、

   ガウシアンフィルタのカーネル

が良く用いられますが、この処理を注目画素の周辺の輝度値をI0~I8とした場合、
ガウシアンフィルタの処理を行列で

    ガウシアンフィルタ
と、表すこともでき、この事は縦方向に3×1のガウシアンフィルタ処理をおこなってから、
横方向に1×3のガウシアンフィルタ処理を行うことを意味しています。
(横方向に処理をしてから縦方向に処理をしても同じです。)

このように処理を縦と横に分けることで、カーネルのサイズm×nの場合、通常の処理では
m×n回の掛け算を行うところ、m+n回の掛け算で済む事になります。
(ただし、縦横に処理を分ける事で全画素を2回参照することになるので、カーネルのサイズが
小さいと効果はあまりありません。)

他にも、移動平均フィルタの場合
  移動平均フィルタ
ソーベルフィルタの場合

  ソーベルフィルタ

となります。
ソーベルフィルタの行列を見ると、縦方向にガウシアンフィルタ処理をしてから、横方向に
微分処理している事が分かりやすくなっているかと思います。

また、比較的処理の重いメディアンフィルタにおいても、処理を縦と横に分けることによって、
ほぼ、同様な効果を得ることができます。
厳密には同じ結果にはならないのですが、スパイクノイズを除去するという意味では
十分な結果を得る事が出来ます。

試しに何回か、メディアンフィルタ処理を縦方向に1列分の処理を行ってから、横方向に1列分の
処理を行ってみましたが、ほぼ、良好な結果を得る事ができていると思います。
(画像にするともう少し分かりやすいかと思いますが、プログラムが無いもので...)

メディアンフィルタの例

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購入

フィルタ処理の高速化アルゴリズム(重複した計算を行わない)

メインページ画像処理

画像フィルタ処理の高速化のテクニックを移動平均フィルタを例にとって紹介したいと思います。

カーネルのサイズが5×5の移動平均フィルタの場合、注目画素の周辺の5×5の輝度値を合計し、
その輝度値の合計を画素数(5×5=25)で割る処理をラスタスキャンしながら、全画素に対して
処理を行います。

    フィルタ処理の高速化

ここで、隣の画素へ処理が移った時に、輝度値の合計の計算処理は前に行った輝度値の合計の
処理とかなりかぶっている(下図の緑色の部分)事に気が付きます。

   フィルタ処理の高速化

そこで、最初の輝度値の平均値を計算をした時の輝度値の合計値を保持しておき、最初の輝度値の
合計値から、最初のカーネルの左端の1列分の輝度値(上図の赤色の部分)を引き、
次のカーネルの右端の1列分の輝度値(上図の青色の部分)を足すと、次のカーネル内の
輝度値の合計値を求める事が出来ます。

そうすると、カーネル内の輝度値の合計の計算に25回の足し算をしていたところ、5回の引き算と
5回の足し算の計10回の計算で済ませることが分かります。
この効果はカーネルサイズが大きくなればなる程、大きくなります。

さらに画像の1行分の合計値を確保するメモリを確保しておくと、縦方向に関しても同様の処理が
できるので、高速化が期待できます。

と、今回は画像のフィルタ処理を例にとって紹介していますが、この考え方は他にもいろいろと
応用が効くので、輝度値の合計の計算に留まらず、毎回同じような処理をしているな~と思ったら、
前回行った処理の使いまわしができないか?検討してみると良いでしょう。
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購入

【VisualStudio】重なったコントロールの選択

メインページC++/CLI プログラミング

分かりづらいかもしれませんが、下図のように、フォームにPanelをドッキングして、その上に
PictureBoxを張り付けてドッキングすると、プロパティなどを変更するときに
Panelをマウスで選択するのは、結構、難しかったりもします。

  重なったコントロールの選択

そんな時には選択するコントロールの上でマウスの右クリックをします。
 
   重なったコントロールの選択
すると、コントロールの下に隠れているコントロールがメニューに表示されるので、メニューから選択します。
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購入

画像の回転

メインページ画像処理

画像を回転する場合、任意点周りの回転移動でも紹介したように回転行列を使って、例えば
画像の中心周りに画像を回転させると、下図のように回転後の画像が虫食い状態になってしまいます。

画像の回転画像の回転
回転前の画像 回転後の画像

こうならないようにするためには、回転前の画像の座標を回転行列を使って回転後の座標を計算する
のではなく、回転後の座標が回転前の画像のどの座標を参照しているのかを計算し、画像を変換します。

【回転前の画像を回転行列を使って変換】
画像の回転

【回転後の座標が回転前のどの座標を参照しているかを計算して変換】
画像の回転

実際の変換処理は以下のように行います。

回転前の画像の座標を(x,y)、回転後の画像の座標を()、画像の中心座標を(Cx,Cy)とすると
単純に画像の中心周りに座標を回転すると以下のような行列で表されます。

回転行列

この行列を回転前の画像の座標(x、y)に関して解けばいいので、行列の式の両辺にそれぞれ
逆行列をかければいいので、以下のような手順で行列を解いていきます。

画像の回転

これで、回転前の座標(x、y)に関して解くことができます。
でも、逆行列を解くのは面倒と思う事なかれ。
(+Cx,+Cy)の平行移動の逆行列は(-Cx、-Cy)方向への移動と同じ、
+θ方向への回転の逆行列は-θ方向への回転と同じなので、

画像の回転

とすれば、逆行列を解くことなく回転後の座標(x、y)に関して座標を解くことができます。
このようにして画像の回転処理を行うと、このようになります。

画像の回転

画像の回転
回転前の画像

回転後の画像

でも、回転後の画像はなんかギザギザしてしまっていますが、これは回転前の画像の座標を
計算するとほとんどの場合、画素の画素の間の座標となってしまいますが、上図の例では
この座標を四捨五入して輝度値を参照しているためで、bilinearやbicubicなどの補間
使うと少しは滑らかな画像となります。

今回は画像の回転について紹介していますが、画像の拡大縮小についても同様の考え方で
処理することができます。
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購入

画像処理

画像フィルタ処理アルゴリズム

 画像処理一覧、比較
 二値化
 Pタイル法
 判別分析法(大津の二値化)
 平滑化(移動平均、ガウシアン)フィルタ
 ガウシアンフィルタの特徴
 メディアンフィルタ 
 エッジ抽出
 アンシャープマスキング(鮮鋭化フィルタ)
 膨張・収縮・オープニング・クロージング
 細線化
 ラベリング
 輪郭追跡処理アルゴリズム
 円形度
 画素の補間(Nearest neighbor、Bilinear、Bicubic)
 アフィン変換
 画像の回転
 外周画素の処理
 色相、彩度、明度ほか
 色相、彩度、明度の計算方法
 疑似カラー(Pseudo-color)
 パターンマッチング(正規化相関など)
 画像処理用標準画像データ入手、ダウンロード先
 

画像処理プログラミング

 二値化
 画像フィルタ処理の高速化(重複した計算を行わない)
 画像フィルタ処理の高速化(縦横に処理を分ける)
  ビットマップファイルフォーマット
  多ビット(10Bit、12Bit)画像データの表示、フォーマット
  VB6.0でビットマップファイルを開く
 拡大鏡+プロファイル機能(開発中!)
 画像切出しソフト【ぴたっとカッター】
 残効錯視
 .NET(C++/CLI)による画像拡大縮小表示、画像処理サンプルプログラム
◆処理の高速化アルゴリズム 
 ルックアップテーブル(ガンマ補正の例)
 

その他

 UVWステージのしくみ(位置決め用高精度XYθステージ)
 



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



現在の閲覧者数: / 合計