今更ながら『2Dグラフィックスのしくみ』を読み終えた

久々の更新です。2015年の夏に発売された本のレビューです。

2Dグラフィックスのしくみ ――図解でよくわかる画像処理技術のセオリー (WEB+DB PRESS plus)

2Dグラフィックスのしくみ ――図解でよくわかる画像処理技術のセオリー (WEB+DB PRESS plus)

以前から気になっていたが、この前本屋で実物を確認できたので(電子版を)購入。

電子版は技術評論社電子書籍販売サイトから。

gihyo.jp

概要

画像編集ソフトの開発者が、普通の人*1向けにコンピューターにおける画像処理についてあれこれ解説した本?

対象読者はパソコンで絵を描いている人で画像編集ソフトの仕組みについて興味がある人。もしくは、2Dグラフィックスに興味がある人で簡単なC言語のソースを読める人。

ざっくりと特色をまとめると、以下のようになる。

  • 画像編集ソフトの開発者が執筆した一般向けの読み物
  • 画像編集ソフトの使い方の本ではない
  • 画像処理の専門書ではない

たいていの画像処理の専門書は顔認識など画像を解析して応用することをゴールにして書かれている。

一方、この本はいわゆるお絵かきソフトに関連するトピックを中心に解説している。 「あとがき」で言及されているとおり、対象読者が曖昧な気がする*2。誰が企画書書いたのか知らないけど、よく企画が通ったものだと思う。

構成

一般向けの読み物と言いながら、処理の解説の箇所で簡単なC言語のコードをモロに用いている。コンセプトといい、非常に挑戦的。まさに意欲作である。

巻頭にとってつけたように用語集がある点は親切。しかしながら、一般的なパソコン用語と、画像処理固有の用語やアルゴリズムの名称などまとめて五十音順に並んでいる。どうせなら各章の冒頭に関連する用語のみ説明するとか、もう少し工夫の余地があったのでは。

  • 0章:著者によるご利益のアピール
  • 1章:プログラムの動作の仕組み(および最低限のC言語の解説)
  • 2章:グラフィックス一般(図形描画処理のノウハウ)
  • 3章:画像処理(画像編集ソフトでよくありがちな処理について高速化のヒントなど)
  • 4章:レイヤーの取り扱いなどペイントソフトならではの話

最後の最後でJPEGの圧縮に使われている離散コサイン変換の説明でぶつ切りになったかのごとく唐突に終わる……。 コードリストを一通り眺めてページをめくるといきなり索引のページが続くのではっきり言ってびっくりする。

内容の詳細は出版社のページへ。

2Dグラフィックスのしくみ ――図解でよくわかる画像処理技術のセオリー:書籍案内|技術評論社

感想

非常に読みやすい丁寧な文章。(C言語のコードが苦にならないなら)特に高度な数学の知識は不要でスラスラ読める。一般向けの画像編集ソフトを開発している方による視点というのは有意義だと思う。

他の本を読む前にこの本を読んでいた方が効率よく画像処理分野について学べたかもしれない。

自分では分かったつもりだった知識(アルゴリズム)が、Cのソースに落とし込まれているのを見て意外と理解できていないことに気づかされる箇所がいくつかあった。

どういう経緯で執筆することになったのか不明ですが、ユーザーが間違った知識のせいで(画像編集ソフトを)おかしな使い方をしている、という現状をどうにかしたかったのかな?
画像編集ソフトの開発者なりにもっと活用して欲しいという思いがにじみ出ている。

残念なところとしては一般向け扱いなのでどうしても広く浅くなりがちな点。あとは詳しく解説して欲しいと思うトピックがほんの数行、言及しておしまいだったりとか。
いくら一般向けでもこの記述はちょっとはしょり過ぎでは?という箇所もあるし。人によって興味を持つトピックは違うので仕方がないとは思いますが。 対象読者層が狭いわりに、興味を持つ読者のニーズに幅があるんじゃないかと思う。

アルゴリズムの解説については問題点とか以前のヒントを示すというのはいいと思うが、参考文献があるとなお良かったのかと思う*3。もちろんネットでキーワード検索して調べればいいのだけど*4


高解像度のカメラを搭載したスマートフォンの普及とプログラミング教育への関心が高まっている昨今の社会情勢からすると、潜在的に画像処理分野に興味を持つ人は増えているように思います。もう少し対象読者を明確にしていればかなり部数を狙えたのではないかでしょうか。

あれこれ文句を書いたけど、コンセプト自体は画像処理関連の分野における『プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識』という書籍のようなポジションも狙えたと思う。改訂版もしくはよりソフトウェア開発者よりの内容の書籍に期待したい。

まとめ

画像処理分野に興味がある方の最初の一冊として、あるいは今までなんとなく画像編集ソフトを使っているが操作手順に自信が持てない方にオススメかと思います。

グラフィック関係のアプリを作る場合にも間違いなく参考になるはず。特に画質と処理速度のトレードオフの解決のヒントになると思います。

難点はやはり、一般向けのはずなのにアルゴリズムの説明がC言語のソースを用いている点。理工系の出身でも人によっては嫌がるのではないだろうか。個人的には変に数式と文章よりわかりやすいのですが。

価格がもう少し安いと良かったかなと思います。

関連リンク


他の方による乾燥など。

参考

この書を読んで、物足りないと思ったなら、画像処理の専門書としては下記が網羅的に解説している。数式多めであまり親切とは言えないけど、一通り解説されてる。

コンピュータグラフィックス [改訂新版]

コンピュータグラフィックス [改訂新版]

ディジタル画像処理 [改訂新版]

ディジタル画像処理 [改訂新版]

価格が結構しますが、Kindle Unlimitedでも読めます(ただし固定レイアウト)。

また、画像処理の教科書としては下記がわかりやすいかと。

はじめての画像処理技術(第2版)

はじめての画像処理技術(第2版)

他の画像処理についても書評記事を書いているのでご参考まで。

a244.hateblo.jp

a244.hateblo.jp


以上です。

それではまた。

*1:プログラマというだけで文字通り普通かどうかは別

*2:他の方のレビューでも指摘されているとおり

*3:圧縮アルゴリズもの箇所にみ参考文献が注釈として記載されている

*4:実際、キッテルの固体物理学ではネットで調べればいいという理由で参考文献が省略されている(分野が違うけど)