【書籍】PrinciplesOfDigitalImageProcessing
【書籍】PrinciplesOfDigitalImageProcessing
Principles of Digital Image Processingという、3冊に分かれている画像処理の本。主に二次元。
Springerの50%オフクーポンが来てたので手頃そうなのを探していて見つける。
Fundamental Techniques
amazon: Principles of Digital Image Processing: Fundamental Techniques
三部作の第一作目だが、これだけでも割と悪くない。この本は主にフィルタとかの話。
数式がしっかり載っているだけでなく図解も豊富でわかりやすく説明されている。 バランスが良い。 Canny Edge Detectionなど、一番面倒なアルゴリズムの説明があまり無い、という部分はあるけれど、 それは読む時の簡潔さの裏返しでもあるので良い面とも言える。 中くらいの複雑さのアルゴリズムは良く解説されているので、それをただ複雑にしただけのものは、必要になってから調べればすぐに理解出来る。 割とよく選択された内容になっているんじゃないか。
Javaのコードも載っているが、自分はそれはあまり必要性は感じなかった。でもあっても良いのでマイナスでは無い。 Javaのコードがあるおかげで解説が曖昧な部分が残っていない、という要素もある気もする。ちゃんと実装出来る感じの解説になている。
追記: Canny Edge Detectionは三冊目の方に詳細が載っていた。
カラースペース回りはRGBとHSVなどの話やガンマコレクションは一冊目、でもCIE系は二冊目。 そしてそれぞれのカラースペースにLinear Filterなどを適用した場合の違いや問題点などは三冊目。 結局全部必要という気はした。
8章にカラーイメージの扱いの基礎がある(CMYKなど。xyzなどの本格的なものは2冊目)
4.7 ガンマ補正
長くなってきたのでページを分ける。>ガンマ補正
6章 Edges and Contours
仕事でgradを使ったアルゴリズムで問題を解決できないか?と思う事があり、類似の問題という事でエッジ検出を読み直す。
6.2がgradの求め方。6.3がそれを使ったエッジ検出、6.6がエッジシャープニングとなっている。
6.4や6.5でCannyエッジ検出とかContourの話とかがちょっと触れられているがここではお話程度。
本題の6.3は以下のようなアルゴリズムがある。
- PrewittとSobelフィルタ(二次元gradが求まり、そこから強さと角度が求まる)
- Roberts Operator (初期のより簡単なフィルタ)
- Compass Operators (向きをいろいろ変えたSobelフィルタでいろいろな向きの直行座標でのgradを求めて、最大の強度の向きを採用する)
Core Algorithm
amazon: Principles of Digital Image Processing: Core Algorithm
当初は買う予定も無かったが50%オフの期間が終わりそうになってきて買ってきたくなったので買う事に。
その後、CIE系のカラースペースの扱いはこの二冊目な事が判明し、その周辺を割としっかり読んだ。 一冊目との分け方はどうなのか、と思わないでも無いが、記述自体は良く書けていて、必要な情報がちゃんと全部載っている。 カラースペース同士の変換をするなら手元に置いておきたい本だし、 この周辺の理論的な話題を一通り学ぶのにも良い本と思った。
Advanced Methods
何故かこの三冊目だけAmazonにないのでSpringerのリンクを貼っておく。
Principles of Digital Image Processing - SpringerLink
三冊目はカラーの画像の扱いとかが多い。一冊目が良かったので買ってみた。カラーの線形フィルタの話はこの巻。
Kuwahara Filterがここにある。
メディアンフィルタの扱いを読んでみた。なかなか良く書けていてよかった。 ただ二冊目から読まないと分からない事も多い印象。 飛び飛びで読まなくてはいけないのはまぁまぁ手間もある(大した手間では無いけれど)。
アルゴリズムはかなり具体的な擬似コードがあって曖昧な所が無いのは良い。
色の扱い
色の扱いは3冊にまたがっているので、一冊ごとだと不便なのでここでまとめておく。
一冊目の8章にRGBやグレースケールの作り方やRGBのレイアウトなどの基礎的な話がある。またガンマ補正も一冊目(章は違うが)。 グレースケールとの変換でluminanceの求め方が出てくる。 逆にluminanceからRGBにする時のweightも出てくる。(8.2.1の式8.6、8.7)。
2冊目の6章でメトリックとして扱える色空間(CIE系列の話やxyzなど)がある。
グレースケールは良く使うのでMFGにコードを書いておく。