画像処理は、身近な様々なところで使われています。
- 画像処理のソフトやアプリの仕組みや原理を知りたい
- 画像処理をプログラミングできるようになりたい
- 画像処理関係のエンジニアになりたい
といった方も多いのではないでしょうか。
画像処理のアルゴリズムを効率的に学ぶには、
- 手軽にプログラミングできるPython
- 無料で使える画像処理ライブラリ(OpenCVなど)
を使うのがオススメの1つです。
Pythonは画像処理だけでなく、分かりやすい文法のため、プログラミング初心者が最初に学ぶプログラミング言語としてもオススメです。
また、近年話題の人工知能や機械学習などでもよく用いられており、
Pythonに習熟すれば、様々な応用を効率的に実現でき、
実装力を高めていくことで、エンジニアとしての就職や転職も有利になります。
そこで本記事では、画像処理についてPythonを使って学んでみたいあなたのために、
- 画像処理の原理や仕組みを基礎から学べる
- OpenCVのダウンロード、インストール、使い方を理解できる
- 画像処理の原理を、データ構造レベルからプログラミングできるようになる
といったオススメ書籍をご紹介します。
本記事の概要
画像処理をPythonで学びたいあなたにおすすめの書籍はこちらです【aiやopenCVもどうぞ】
画像処理ってなに?といった方や、画像処理を基礎の基礎から学びたいあなたはこちらをどうぞ
増補改訂版 図解でわかる はじめてのデジタル画像処理
本書は、画像処理のイロハを、ゼロからわかりやすく解説された1冊です。画像処理のほんとの初心者という方は、こちらを一読されると、後の勉強が加速できます。
デジタルとは?から始まり、デジタル画像とは?カラー画像の表現の方法は?といった、画像処理を学ぶなら、最初に知っておくべき基本項目がわかりやすくまとめられています。
デジカメやBlue-rayレコーダ、自動運転や顔認証技術など、画像処理が使われている身近な例を出しながら解説が進むので、使う場面を想像しながら読み進めることができます。
加えて、画像処理の技術について、幅広く様々な手法をサクッと学ぶことができます。
- ノイズ除去などに役立つフィルタ処理
- 輪郭を抽出するためのエッジ検出
- 画像処理の周波数空間での処理(離散フーリエ変換:DFTなど)
- 画像圧縮、動画圧縮
- aiと画像処理、コンピュータビジョン、マシンビジョン
- 物体認識
- ディープラーニング
などがあり、どんなことができそうかといったことをわかりやすくつかむことができます。
画像処理の初学者の方などが全体像をサクッとつかめる良書となっています。
画像処理に入門したいけど、
プログラミングをゼロからやるのはちょっと・・・
という方は、OpenCVという画像処理のフリーソフトを使うのがオススメです↓
OpenCVによる画像処理入門 改訂第3版 (KS情報科学専門書)
本書は、画像処理ライブラリ「OpenCV」を使った画像処理の基本的な手法がわかりやすくまとめられています。
OpenCVを使うには、何らかのプログラミングをして呼び出す形で使うのですが、呼び出すための言語には様々な言語が使え、本書では、Python, C, C++からの使い方が解説されており、1冊で3言語からの使い方を学べるお得な本となっています。
内容としては、最初に、OpenCVでできることなどとともに、ヒトの視覚の仕組みの解説などもあり、画像処理全体をサクッ学ぶことができます。画像の読み込み、デジタル画像の配列表現とOpenCVでの扱い方などの基本事項を理解することができます。
その後、画像処理の技術的な話に進んでいきます。基本的には技術の内容と実例、OpenCVでの実装例がセットになって解説されている感じで、コード例を見ながら、自分で手を動かしながら学べる作りに成っています。
解説がある具体的な画像処理技術については、以下のものがあります。
(1), カラー画像の扱い:グレースケール変換、トーンカーブ、ガンマ変換、ネガポジ反転、ソラリゼーション、ポスタリゼーション、擬似カラー処理などの解説があります。
(2), OpenCVでの幾何学変換や濃度変換:アフィン変換、透視変換などのの後、ヒストグラム、明度調節、コントラスト低減・強調、擬似濃度変換、ディザリングなどがプログラム例とともに説明され、自分でもサクッと実装できます。
(3), OpenCVでの画像フィルタ処理:畳み込みの演算を使ったpython画像処理、平滑化フィルタ処理、エッジ検出フィルタ処理(sobel、Laplacianオペレータ、Canny(キャニー)法など)、そして鮮鋭化フィルタなどが解説されており、原理的なところからシッカリ理解できます。
(4), 二値化処理、マスク処理、膨張・収縮処理、オープニング・クロージング、ノイズ除去、OpenCVでの外接矩形(くけい)などの形状特徴パラメータ、ラベリング処理などが、コードとともにサクッと説明されており、画像処理の面白さの一面を感じてもらえるのではないでしょうか。
(5), 複数画像の処理:画像間演算、マスク合成、背景差分、フレーム間差分、といった内容が解説されています。
(6), 距離画像の処理(第2版で追加):距離カメラや計測原理などを理解できます。特に応用面でも重要な内容ではないでしょうか。
(7), 付録には、OpenCVのダウンロードやインストール方法、PythonからOpenCVを使う方法などがわかりやすくまとめてありますので、初心者の方でも安心です。
このように、本書1冊で画像処理全体をカバーしていて、それぞれの手法のOpenCVの使い方を理解でき、サクッと実装することが可能となっています。画像処理にOpenCVでサクッと入門・実装したいあなたにオススメの1冊となっています。
「動画処理」をOpenCVでやりたいあなたはこちらもございます↓
OpenCVで始める簡単動画プログラミング
OpenCVの使い方を詳しく学ぶにはこちらもございます↓
Pythonで始めるOpenCV3プログラミング
本書は、OpenCV3を使った、画像処理と動画処理などを、Pythonで実装するための解説本です。
まず、Pythonの様々なライブラリなどがまとめられたパッケージ Anaconda(アナコンダ)や、Pythonで行列演算などを高速化できるライブラリ NumPyの使い方の説明があります。
加えて、OpenCVのインストールなどの開発環境の説明があり、OpenCVによる画像の読み込み・生成・出力など、基本的な操作から学ぶことができます。
画像・動画処理の技術について、具体的な内容としては、以下のものを学ぶことができます。
- グラフィクス:線・円・文字などを描きならが学んでいきます。
- 幾何学変換:アフィン変換によるフリップ・リサイズ・回転・透視撮影・トリミングなどが解説されています。
- カラー処理:グレースケール化、平滑化、カラー画像の各成分の分離などの説明があります。
- フィルタ処理:空間フィルタとしてメディアン処理・ガウシアン処理・ラプラシアン処理・Sobel処理・キャニー(Canny)処理から、画像の膨張・収縮処理、モザイク処理などが学べます。
- 画像の合成処理、動画処理、オブジェクト検出(コーナー検出、顔検出、オブジェクト検出、テンプレートマッチング、特徴点検出など)が解説されています。
- 手書き文字認識:その後、近年盛り上がっている人工知能技術の1つ、ディープラーニング(深層学習)を用いた、カメラ撮影した手書き文字認識のOpenCVを使った実装例を学ぶことができます。
サンプルプログラム例を示しながらわかりやすく解説されているので、1つひとつ着実に理解することができる1冊となっています。
OpenCVを、C++から使いたいなぁ〜という方にはこちらもございます↓
OpenCV4基本プログラミング―さらに進化した画像処理ライブラリの定番
Python による OpenCV 4 の解説本もございます↓
Pythonで始めるOpenCV 4プログラミング
OpenCVによる画像処理は「機械学習」と組み合わせることで、応用分野がさらに広がります。
OpenCVと機械学習を使ってみたいあなたにはこちら↓
OpenCVとPythonによる機械学習プログラミング
本書は、OpenCVの機械学習部分の使い方を強化した1冊です。
OpenCVというと、画像処理のソフトじゃないの?という方が多いかと思うのですが、実は機械学習のライブラリも含んでおり、OpenCVを機械学習ライブラリとして使う、ということも可能です。
機械学習が初めて、という方にもわかりやすいように、環境構築の仕方から丁寧に説明があり、
- 機械学習がそもそも何なのか?
- どう、データを扱ったらいいのか
- 教師あり学習とは何なのか?
といった機械学習の基本コンセプトから学ぶことができます。
機械学習のアルゴリズムとしては、決定木、サポートベクタマシン、ベイズ推定、k-meansクラスタリング、期待値最大化、深層学習(ディープラーニング)、アンサンブル学習、ハイパーパラメータチューニング、モデル選択、などが扱われています。
医療診断、歩行者の検出、迷惑メールのフィルタ、手書き数字分類など、機械学習でよく使われる興味深い例とともに、学べます。
ただしOpenCVやPythonの知識についてはある程度できることを前提に書いてあり詳しい解説はありません。なので、もしOpenCVやPythonも初心者という場合には、それぞれ他書で補う形となりますのでご注意ください。
OpenCVを使ったことがあって、さらに機械学習を学びたいなといった場合に本書で学べば追加で勉強するコストが最小限になるかと思います。
本書は、OpenCVの機械学習部分の使い方についても、具体例を通じて、わかりやすく学ぶことができる1冊となっています。
類書としてこちらもございます↓
実践OpenCV4 for Python―画像映像情報処理と機械学習
OpenCVではじめよう ディープラーニングによる画像認識
ラズパイ/PCで体験!計測のためのカメラ画像処理 (CQ文庫)
こちらは応用的な使い方が中心の1冊で、経験者向けの内容となっています。基礎を身につけた後で、さらに活用していきたい方向けの内容となっています。初学者の方は、まずは他書で基礎を固めた後に買われるとよいかと思います。
OpenCVなど、ライブラリを使えば実装はできるんだけど、
- 画像処理ってそもそも、中で何をしてるの?
- OpenCVを使わずに、プログラミングして手を動かしながら学びたい
と思われる方も多いのではないでしょうか。
そんなあなたにオススメの、画像処理だけでなく、音声処理も同時に学べるお得な1冊はこちらです↓
Pythonで学ぶ実践画像・音声処理入門
本書は、Pythonを使って、画像処理や音声処理を、データ構造のレベルから理解できる1冊です。
OpenCVを使えば、プログラミング量は減り、サクッと実装できる反面、中でどんな計算をされているかといった、原理的な理解が後回しになりがちではないでしょうか。
本書では、Pythonを使うことで、(C++などと比べて)プログラミングの労力は下げながら、画像処理や音声処理の基礎原理を手を動かしながら学ぶことができます。
1次元データの処理としての音声処理、2次元データとしての画像処理として系統的に学べるのが特徴の1つで、具体的な処理技術としては、以下のものが学べます。
- 1次元・2次元(音声・画像)のフーリエ変換
- 1次元のフィルタ処理(音声処理)と2次元のフィルタ処理(画像処理)(周波数領域処理と空間領域処理)
- 1次元の相関(音声処理)と2次元の類似度(画像処理)
- 複素信号(周波数変調など)
- 画像の幾何学的処理(2次元回転・平行移動・アフィン変換・射影変換など)
- 分類(特徴量、k最近傍分類、最尤法)
- 応用(Wavetable合成(音声合成)、衛星画像の時間変化領域の解析)
画像処理や音声処理の基礎が身につくのはもちろんのこと、Numpyやmatplotlibなどの使い方など、人工知能や機械学習などでよく使われているPythonのプログラミングにも慣れることができます。
画像処理や音声処理、信号処理を1から学んでいきたい学生さんや技術者の方など、より詳細な書籍や論文などを理解するための基礎となるおすすめの1冊です。
こちらもございます↓
Pythonでコンピュータビジョンについて手を動かしながら学べる1冊です↓
実践 コンピュータビジョン
[amazonjs asin=”4873116074″ locale=”JP” title=”実践 コンピュータビジョン”]本書は、Pythonを使って、コンピュータビジョンを実装するための基礎理論や基本アルゴリズムを系統的に学べる1冊です。
コンピュータビジョンは、画像に何が写っているか認識するための時術をまとめた言い方です。コンピュータビジョンを応用することで、画像検索や写真の管理、医用画像解析やロボットの制御など多岐に渡る応用が可能です。
本書の内容としては、画像処理の基本に始まり、画像の局所記述子、画像間の写像、カメラのモデル化、3D空間から2D画像への写像、カメラパラメータの推定方法、他視点幾何、画像のクラスタリング、画像検索、画像認識、画像の領域分割などを学べます。
加えて、PythonからOpenCVを使う方法も説明されており、画像処理の原理を理解した上で、OpenCVを活用できるようになる、お得な内容となっています。
付録では、写真の共有サイト(Flickr)からの画像のダウンロード方法が説明されており、画像処理や画像認識で必要となる、画像データを取得方法を学べるのもうれしいところです。
注意点としては、読者として、プログラミングの基本的な知識、エディタの使い方、スクリプトの実行方法などがある程度身についている方を想定しています。そのあたりの解説はないので、もしあなたが完全にプログラミング初心者なら、Pythonのプログラミングなどを先に学ばれることをおすすめします。
また、画像処理のPythonライブラリPython Image Library(PIL), NumPy, SciPy, Matplotlibなどの使い方や、ベクトル・行列の演算、微分や勾配など数学的な知識がある程度ないと、原理的な理解やプログラミングについて、むずかしく感じるかもしれません。
数学やプログラミングに苦手意識がある方は、簡単にでいいので、一通り勉強された後で本書を活用すると理解が促進されるかと思います。
本書は、画像処理を原理レベルから系統的に学べ、コンピュータビジョンへの応用までのプログラミングを手を動かしながら学べる良書となっています。
こちらもございます↓
Pythonについてのおすすめ本などはこちらからどうぞ↓
数学を基礎からサクッと学べる本など、おすすめの記事はこちらにございます↓
こちらもございます↓
本書は、画像処理を学んでみたい
- 画像処理の初学者の方
- 入門書を読んだけど難しかった方
- 画像処理で挫折した方
向けに、
- 画像データの感覚
- 画像データの扱い方のイメージ
をつかむことで、
入門書を読み解ける基礎力をつけれるようになる1冊です。
ちなみに本書は、Kindle Unlimitedの登録することで、
- 無料で読むことが可能
です。
お試し登録(解約できて無料)をしてみてはいかがでしょうか(初回30日間無料で体験できます)↓
PythonによるOpenCV4画像処理プログラミング+Webアプリ入門
今すぐ試したい! 機械学習・深層学習(ディープラーニング) 画像認識プログラミングレシピ
実践OpenCV 2.4 for Python―映像処理&解析
詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識
Processing 3による画像処理とグラフィックス
画像認識の極み‟ディープラーニング” (映像情報MOOK)
カラー図解 Raspberry Piではじめる機械学習 基礎からディープラーニングまで (ブルーバックス)
画像認識 (機械学習プロフェッショナルシリーズ)
物体・画像認識と時系列データ処理入門 TensorFlow2/PyTorch対応第2版 NumPy/TensorFlow2(Keras)/PyTorchによる実装ディープラーニング
物体検出とGAN、オートエンコーダー、画像処理入門 PyTorch/TensorFlow2による発展的・実装ディープラーニング
今すぐ試したい! 機械学習・深層学習(ディープラーニング) 画像認識プログラミングレシピ
医療AIとディープラーニングシリーズ 標準 医用画像のためのディープラーニング: 入門編
医療AIとディープラーニングシリーズ 標準 医用画像のためのディープラーニング: 実践編
医療AIとディープラーニングシリーズ 医用画像ディープラーニング入門
3次元コンピュータビジョン計算ハンドブック
新編 画像解析ハンドブック
Hands-On Computer Vision with Julia
Hands-On GPU-Accelerated Computer Vision with OpenCV and CUDA
Python 3 Image Processing: Learn Image Processing with Python 3, NumPy, Matplotlib, and Scikit-image
Computer Vision: Algorithms and Applications (Texts in Computer Science)
画像認識と相性のいい機械学習も学べるこちらもどうぞ↓
Python機械学習プログラミング PyTorch&scikit-learn編 impress top gearシリーズ
Pythonによるディープラーニング (Compass Booksシリーズ)
直感 Deep Learning ―Python×Kerasでアイデアを形にするレシピ
深層学習 改訂第2版 (機械学習プロフェッショナルシリーズ)
PROSPEC デジタルビデオ編集機 最高級モデル DVE795
Python 1番最初の入門書: コスパ最高 無料でプログラミング (ミント出版)
人工知能 1番最初の入門書: ディープラーニングの祖先を理解する (ミント出版)
サクッとわかる人工知能 第2巻: ディープラーニングの祖先を「改良」する (ミント出版)
人工知能 3番目の入門書: 線形回帰分析 (ミント出版)
画像処理 0番目の入門書: Python/OpenCV 環境構築編 (ミント出版)
画像処理 1番最初の入門書
画像処理入門 速習二値化: Python/OpenCVでサクッと実行 (ミント出版)
画像処理入門 速習「画像補正」: Python/OpenCVでサクッと実行 画像処理シリーズ (ミント出版)
こちらの記事もございます↓
『「強化学習」を学びたいあなたにチェックしてほしい良書、7冊はこちらです』
『「自然言語処理」を学びたい人におすすめの良書、10冊はこちらです』
『「機械学習」に入門したいあなたにチェックしてほしい良書、10冊はこちらです』
『root権限が使える、安いおすすめの「VPS(仮想プライベートサーバー)」を比較しました 海外の格安VPSもどうぞ』
『サーバーとは?レンタルサーバー、VPS、クラウドサーバー、専用サーバーの違いや、メリット・デメリットをまとめました』