Posts for: #画像処理

画像へのアフィン変換

画像へのアフィン変換

本記事はQrunchからの転載です。


アフィン変換といえば、普通は2次元上の点や図形を拡大縮小したり、回転したり、平行移動したりといった変換をさします。 式の話をすると、ある2次元上の点$(x,y)$の$(x’, y’)$へのアフィン変換は次のようにして表現できます。 $$\begin{pmatrix}x’ \\ y’ \\ 1 \end{pmatrix} =\begin{pmatrix} a & b & c\\ e & f & g \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix}x \\ y \\ 1 \end{pmatrix}. $$ $a,b,e,f$の値によって拡大縮小、回転をおこなうようにできますし、$c,g$の値によって平行移動が可能です。

動画の書き込み

本記事はQrunchからの転載です。


OpenCVでの動画の書き込み方

次のようにしてtest.mp4という名前の動画を作成します。

fourcc = cv2.VideoWriter_fourcc("m", "p", "4", "v")
writer = cv2.VideoWriter("test.mp4",
                         fourcc,
                         30,
                         (1920, 1080))
print(writer.isOpened())

第二引数のfourccは動画のコーデックをあらわしており、mp4のときにはcv2.VideoWriter_fourccの引数には"m", “p”, “4”, “v"を指定します。他にもmpgで保存するときには"D”, “I”, “V”, “X"を指定したりできます。拡張子に対応してどういうコーデックが指定できるかは、ググっていただくのが良いかと思います。 また、第三引数にFPSを第四引数に動画の横と縦の大きさを指定しています。 isOpenedメソッドにより動画を書き込むための準備ができているかを確認できます。FalseのときにはPCがコーデックに対応していなかったりで上手くいっていません。

動画の読みこみ

本記事はQrunchからの転載です。


今日はOpenCVでの動画の読み書きを扱います。

動画の読み込み

動画の読み込みは簡単です。

最初に次のように保存されている動画を開きます。

filter2Dで任意のカーネルを扱う

filter2Dで任意のカーネルを扱う

本記事はQrunchからの転載です。


OpenCVではいろいろなカーネルによる演算が用意されていますが、自分で定義したカーネルを使いたいこともあります。 そんなときにはfilter2Dが活躍します。

膨張と収縮の組み合わせによるopeningとclosing

膨張と収縮の組み合わせによるopeningとclosing

本記事はQrunchからの転載です。


画像に対する膨張と収縮の組み合わせによって、openingとclosingという2つの操作が実現できます。 openingは周辺よりもピクセル値が大きい点を取り除くことができ、closingは周辺よりもピクセル値が小さい点を取り除くことができます。これによってノイズの除去や連結した領域を分割したり、逆に連結させたりできます。

erodeで猫を収縮させる

erodeで猫を収縮させる

本記事はQrunchからの転載です。


erodeによる収縮

erodeは指定した局所領域内の最小値を取るような操作になります。

具体的な例で説明していきます。 次のようなピクセル値をもった3×3の画像があったとします。

dilateで猫を膨張させる

dilateで猫を膨張させる

本記事はQrunchからの転載です。


OpenCVで用意されているdilateを使うことで、画像の中の物体などを膨張させることができます。 ただ膨張させるだけだとあまり使いみちがあるのかよく分かりませんが、収縮などと組み合わせることで色々な用途があります。

Laplacianで画像の2階微分

Laplacianで画像の2階微分

本記事はQrunchからの転載です。


今回はLaplacianを扱います。

そもそものLaplacian

Laplacianの復習的な話ですが、2階偏微分可能な関数$f(x,y)$に対して以下をLaplacianといいます。 $$ \Delta f = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2}. $$

Sobelフィルタで微分

Sobelフィルタで微分

本記事はQrunchからの転載です。


よくある画像処理のオペレーターとして、画像の微分があります。 いくつかやり方はありますが、今日はSobel微分を取り上げます。