RandomThoughts

RandomThoughts

【書籍】PrinciplesOfDigitalImageProcessing

Contents:
  1. Fundamental Techniques
    1. 6章 Edges and Contours
  2. Core Algorithm
  3. Advanced Methods

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などを適用した場合の違いや問題点などは三冊目。 結局全部必要という気はした。

ガンマ補正はこの巻にある(良く参照するのでメモ)

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

三冊目はカラーの画像の扱いとかが多い。一冊目が良かったので買ってみた。カラーの線形フィルタの話はこの巻。

メディアンフィルタの扱いを読んでみた。なかなか良く書けていてよかった。 ただ二冊目から読まないと分からない事も多い印象。 飛び飛びで読まなくてはいけないのはまぁまぁ手間もある(大した手間では無いけれど)。

アルゴリズムはかなり具体的な擬似コードがあって曖昧な所が無いのは良い。