Python で始める OpenCV 4 プログラミング

パイソン デ ハジメル オープンシーヴィ フォー プログラミング

Python で始める OpenCV 4 プログラミングの表紙
プログラミング
著者:
北山直洋(キタヤマ, ナオヒロ)
出版社:
カットシステム
出版日:
2019年03月
ISBN:
9784877834616
在庫:
在庫あり
0
Python

なぜ注目されているか

言及数
333位
総合357位 ↑ 3 ランクアップ 言及 8 件
01120222023202420252026

技書の森解説

『Python で始める OpenCV 4 プログラミング』 (北山直洋 著、カットシステム、2019 年 3 月刊) は、Python の基本レベルを習得した人を対象に、コンピュータビジョンライブラリの定番である OpenCV を使った画像 / 動画処理を Python で行う方法を解説する書籍です。版元の紹介文によれば、開発環境の準備と動作確認用の簡単なプログラム作成から始め、さまざまな画像 / 動画処理の方法をサンプルプログラムとともに提示して説明する進め方で、ディープラーニングを利用した解析の例も紹介されています。書名の OpenCV 4 は 2019 年の刊行時点で対応するバージョンを指し、第 2 章には OpenCV 3 と OpenCV 4 の特徴と変更点を整理する節が置かれています。

全 10 章と付録、環境準備から Deep Learning までの構成

構成は全 10 章と付録です。第 1 章「開発環境の準備」では Anaconda のインストール、Spyder の起動、はじめての Python プログラム、OpenCV のインストールと確認を扱い、第 2 章「はじめての OpenCV プログラム」で OpenCV の概要と NumPy モジュール、画像の生成、読み込みと書き込みに進みます。第 3 章から第 7 章は静止画に対する処理の各論で、円 / 線 / 文字を描くグラフィックス、フリップ / リサイズ / 回転 / 透視投影 / トリミングを扱うアフィン変換、グレイスケール / 輝度平滑化 / 閾値処理 / カラー画像の各成分の分離といった色の処理、ブラー / メディアン / ガウシアン / ラプラシアン / Sobel / Canny / 膨張 / 収縮 / ボックスフィルタ / モザイクを並べたフィルタ処理、加算 / 減算 / ブレンド / 論理和による二つの画像合成が続きます。第 8 章は動画処理、第 9 章「オブジェクト検出」はコーナー検出 / 顔検出 / 動画の顔検出 / オブジェクト除去 / ダメージ補修 / テンプレートマッチング / 特徴点検出、第 10 章「Deep Learning」はカメラで撮影した手書き数字の認識を題材にします。付録は Linux 環境で OpenCV を使用する場合として Ubuntu への Anaconda と OpenCV のインストールを補い、第 2 章以降の各章末には、その章で使った関数を整理する「関数の説明」 (第 9 章と第 10 章は「関数などの説明」) の節があります。学習に使えるサンプルファイルのダウンロードサービスと、本文訂正情報 (2021 年 2 月 16 日更新) も版元サイトで提供されています。

画像を NumPy 配列として扱う、OpenCV と Python の関係

OpenCV 公式チュートリアルの説明では、OpenCV-Python は C++ で実装された OpenCV を Python から使うためのバインディングの ライブラリ で、その配列構造は NumPy 配列と相互に変換されます。読み込んだ画像を NumPy の多次元配列として扱えるため、画素値の参照や切り出し、画像同士の演算が配列操作として書けます。第 2 章で NumPy モジュールが取り上げられるのは、この前提を押さえるためと理解できます。第 4 章から第 7 章の変換 / 色処理 / フィルタ / 合成はいずれも画素の配列に対する計算で、ブラーやガウシアン処理は周辺画素の重み付き平均、ラプラシアン / Sobel / Canny は輝度が急に変わる場所 (輪郭) を強調する処理、膨張と収縮は二値画像の形状を整える処理というように、どの計算が画像にどう効くかを結果の画像で確かめながら進められます。動画は連続するフレーム画像の列なので、第 8 章の動画処理は静止画で学んだ処理をフレームごとに適用する形になり、第 9 章の顔検出やテンプレートマッチングも同じ配列の上で動きます。こうした画像処理の基本操作は、ディープラーニング による画像認識を行う際の前処理としても使われるため、第 10 章で扱う手書き数字認識の例へ自然につながる構成です。

前提知識は Python の基本、Deep Learning は終章の導入

版元が対象として挙げるのは Python の基本レベルを習得した人で、NumPy の操作は第 2 章で扱われるため、配列処理の経験は必須の前提ではありません。開発環境は Anaconda と Spyder を用いる 2019 年 3 月時点のもので、Python や OpenCV の細かなバージョンは版元ページに記載がないため、手元の環境に合わせてインストール手順を読み替える場面はあり得ます。Deep Learning は第 10 章の一つの章として扱われる導入であり、ニューラルネットワークの理論やフレームワークの本格的な習得を目的とする人には、本書は入り口にとどまります。逆に、まず画像を読み込み、変換し、フィルタをかけ、顔や特徴点を検出するまでを Python で一通り動かしたい人には、処理の種類ごとに章が分かれた本書の構成が向いています。Python そのものが不安な場合は、Python 本の選び方 で基礎を固める本を先に選ぶのが順当です。

業務や研究で画像 / 動画データを扱い始めた人、動画に顔検出をかけたり、カメラで撮影した手書き数字を認識させたりする小さな実験をすぐに動かしたい人にとって、本書はサンプルプログラムと結果の画像を並べて確かめながら OpenCV の基本操作を身につけられる一冊です。2019 年時点の OpenCV 4 を前提とした環境構築の読み替えを引き受けられるなら、画像処理の最初の一冊として投じた時間を早く回収できます。

言及した記事 (8 件)

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: