Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

写真に写った余分なものを消去する

写真に写った余分なものを消去します。OpenCVの修復機能inpaintにより画像の特定個所を消去します。inpaintは修復部分の周辺画像から修復部分を補完します。

環境
  • windows10 home
  • jupyter notebook 6.3.0
  • Python 3.8.8
  • OpenCV 4.0.1
準備

次の画像ファイル'beach.jpg'(600x400)をjupyter notebookファイルと同じディレクトリにコピーします。左隅にカラスが写っているのでこれを消去します。
f:id:T_A_T:20210826204708j:plain
画像ファイルと同じサイズのマスク用画像'mask.jpg'を同じ場所に保存します。マスク画像は黒地で消去したい部分(カラスのあたり)を白く塗ります。
f:id:T_A_T:20210826205026j:plain

コード
import numpy as np
import cv2

img = cv2.imread('beach.jpg')
mask = cv2.imread('mask.jpg', 0)

dst = cv2.inpaint(img, mask, 3, cv2.INPAINT_TELEA)

cv2.imwrite('dst.jpg', dst)
実行結果

カラスが消去されました。
f:id:T_A_T:20210826205126j:plain

以下のサイトを参考にさせていただきました

OpenCV-Python Tutorials 1 documentation >> 画像のInpainting

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村