Posts for: #OpenCV

動画の書き込み

本記事は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が活躍します。

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微分を取り上げます。

imencodeとimdecodeによるメモリ上での画像圧縮

imencodeとimdecodeによるメモリ上での画像圧縮

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


画像をpngなどからjpgに変換したいときに、ぱっと思いつくのはファイルを読み込んで、それをjpgの拡張子で書き込みした後に再度読み込みなおすことです。 1度動かすならばそれでも良いのですが、何度も繰り返しおこなう場合にはファイルの読み書きの時間が気になります。

サンプルコードでなにかとあらわれるガウス平滑化

サンプルコードでなにかとあらわれるガウス平滑化

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


今日はなにかとサンプルコードで使われるガウス平滑化です。

ガウス平滑化とは

前々回取り上げた単純平滑化は局所領域の平均をとることで、平滑化をおこないました。これは局所領域内の各ピクセルの重み付けがすべて等しいともいえます。 ガウス平滑化では二次元のガウス分布を離散化した値を重みとして利用するような平滑化になります。 $$g(x,y) = \frac{1}{2\pi\sqrt{\sigma^2}}\exp\left(-\frac{x^2 + y^2}{\sigma^2}\right).$$

外れ値に強いMedianBlur

外れ値に強いMedianBlur

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


単純平滑化の場合には、局所領域内での平均を取るため、周辺とは大きく異なるピクセル値をもつピクセルがあると、その影響が大きすぎて上手くいかない場合があります。 そのようなケースでは中央値を使うようにすると、上手くいくかもしれません。

大津の二値化で楽をする

大津の二値化で楽をする

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


大津の2値化とは?

シンプルな二値化では、何かしらのしきい値を決めてあげる必要がありました。

人間がグレースケール値のヒストグラムを見てしきい値を決めたり、試行錯誤するというのも良いですが、場合によってはしきい値を自動で決定したくなります。