なるほどなあ。 なにが?
行列を(2,2)で作る。画像は二次元だが、例えば200×200だと4万ですね。x で一行、yで一行の配列にいれる。(2,他列)行列である。
内積をとる。 [.] か dot と書くかで良い。すると(2,2)*(2,他列)で(2,他列)の行列ができる。それを描画する。matplotlibを使う。という手法があった。
この本では(どの本だよ)単純に白黒だけを扱っていて、ま~なんというかね、内積で画像処理だよよんという話。
アフィン変換だと(3,3)行列になる。それも行列の内積計算で一行の記述で終わりだ。なんちゅー簡潔さ。これをc/c++でやるとfor文で回すって処理だろな・・・もっともnumpyも裏ではそれやっているのだろけどさ~。
ほんで PILモジュールを使っても画像処理はちょっとできるし。numpy配列に読みこんで画素ごとの計算をしても弱いし。
歯科ーーーし、もとい、しかーーーーし、OpenCVというのもあるのだひでき。画像処理ライブラリはいろいろとあるらしいがなあ。。。。私はC++でのOpenCVがメインだけど・・・・例題を動かすだけな(笑)
ただ、画像処理だけでなくVisualStudio2022 Communityの使い方も習得してですぜ。(ウソ)
VisualStudio2022 CommunityではOpenCVの場合にはProject Propertyに設定する項目がありまして。それを一つの例題を動かすだけなのに毎回設定するってクッソめんど。と思っていたらProperty Sheet作って使いまわせって方法があって。数年前から。
そして、私は今年は VCpkgというツールを知ったのである。これ使うとProject Propertyの設定しないで済むのである。すばらしい。というので例題をいくつか動かして終わったのである。
どや。
で、Pythonでの話だが。これはPythonで学ぶ線形代数の中での画像処理の簡単な紹介での事である。
しかーし、線形代数は固有値・固有ベクトルの次に高い障壁があると先日知ったのである。グラム行列とか特異値とか特異値分解とか出てきやがった(笑) わけわからん。ユニタリー行列とかエルミート行列とか量子力学でも出て来やがった(笑) われわからん。
その本によると(どの本だよ)、線形代数のこれらは機械学習でも応用されているとか書いてある。そこで思い出したのが数年前の。10年前か。
機械学習の数学的基礎は線形代数である、とエライ人が言うとった。うむ。エライかどうかは知らんが。
ワタクシは画像処理の各種のライブラリを使った例題を動かして終わり、なわけだが。その背景にはワタクシが知らぬ線形代数の高い山々があると先日知ったのである。ならば頂上まで登ろうという高望みはせずとも少しは登ってみようではないか。富士山だって頂上でなくても途中からでも視界は広がるのである。登らぬといつもの平地ばかりだ。
ま~高尾山ぐらいに登って関東平野でも見晴らしたら気分が少しはよいだろに。
これは例えだからな。数学というヒマラヤ級の山脈に登ろうという高望みはないのだ。高尾山ぐらいだ(笑) これは例えだからな。
少しは登ってみようではないか。そこだな。これは例えだからな。何にもやらないよりは何かを試みる方がマシってことなのだよ、ちみい。。。。
だって にんげんだもの byニセみつほ
で、Pythonの話は? 知らん。