MATLAB、Python、Scilab、Julia比較ページはこちら
https://www.simulationroom999.com/blog/comparison-of-matlab-python-scilab/
はじめに
の、
MATLAB,Python,Scilab,Julia比較 第3章 その57【アフィン変換①】
MATLAB,Python,Scilab,Julia比較 第3章 その58【アフィン変換②】
MATLAB,Python,Scilab,Julia比較 第3章 その59【アフィン変換③】
MATLAB,Python,Scilab,Julia比較 第3章 その60【アフィン変換④】
を書き直したもの。
今までは、畳み込み演算をベースとした画像処理がメインだった。
今回からはアフィン変換等の座標変換の話に突入する。
主に以下の話になる。
- アフィン変換で何ができるか?
- アフィン変換の数式的解釈
- アフィン変換を実施する上での問題
畳み込み系以外の画像処理
画像処理としては、畳み込み系の処理で2値化までやった。
実際は、そこから細かく物体検出やセグメンテーションを行うのだろうが、
昨今は、ディープラーニングを利用したものが主流。
よって、人間が特徴量を抽出する手法は下火と言って良いだろう。
というわけで、まずは2値化までとする。
2値化以外の画像処理というと、図形の変形のようなものがある。
アフィン変換がその代表。
アフィン変換
アフィン変換については、とりあえずWikipediaから引用する。
アフィン変換特化の説明は英語版Wikipediaに記載があった。
In Euclidean geometry, an affine transformation or affinity (from the Latin, affinis, “connected with”) is a geometric transformation that preserves lines and parallelism, but not necessarily Euclidean distances and angles.
Wikipediaより(https://en.wikipedia.org/wiki/Affine_transformation)
More generally, an affine transformation is an automorphism of an affine space (Euclidean spaces are specific affine spaces), that is, a function which maps an affine space onto itself while preserving both the dimension of any affine subspaces (meaning that it sends points to points, lines to lines, planes to planes, and so on) and the ratios of the lengths of parallel line segments. Consequently, sets of parallel affine subspaces remain parallel after an affine transformation. An affine transformation does not necessarily preserve angles between lines or distances between points, though it does preserve ratios of distances between points lying on a straight line.
↓日本語化
ユークリッド幾何学では、アフィン変換またはアフィニティ(ラテン語のaffinis、「とつながっている」から)は、直線と平行度を保持する幾何学的変換であるが、必ずしもユークリッドの距離と角度を保持する必要はない。
Wikipediaより(https://en.wikipedia.org/wiki/Affine_transformation)
より一般的には、アフィン変換はアフィン空間(ユークリッド空間は特定のアフィン空間である)の自動多相性である。つまり、アフィン部分空間の次元(点を点に、線を線に、平面を平面に、など)と平行線分の長さの比の両方を保持しながら、アフィン空間をそれ自体に写像する関数である。その結果、平行なアフィン部分空間の集合は、アフィン変換後も平行のままである。アフィン変換は必ずしも直線間の角度や点間の距離を保持するわけではないが、直線上にある点間の距離の比は保持する。
何を言ってるかさっぱりかもしれないが、
ピクセル単位の座標変換だと思えばOK。
x座標、y座標を元にした変換と、そこに対しての並行移動のパラメータがあるって感じ。
ここでは、
アフィン変換という座標変換手法があって、
現座標を元に直線的に変換先を決定する手法がある。
という認識でOK。
アフィン変換でなにができるのか?
アフィン変換が座標変換という話をしたが、
具体的にどういうことができるのか?
できるこは、以下になる。
- 伸縮
- 移動
- 回転
- 剪断
上記を組み合わせることも可能。
例えば、X軸方向に拡大した上で、Y軸方向へ移動し、中央の原点を起点に回転とか。
ちなみに剪断は、長方形な画像を平行四辺形な感じに変換するもの。
画像が斜めになるような変換と思えば良いだろう。
コメント