Pythonでいろいろやってみる

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

画像の上下のみぼかす

写真の上下をぼかし、中央はそのまままにします。画像の上中下3つに分け、上下の画像をぼかし、最後に上中下を再度連結します。

使った関数・メソッド
  • cv2.imread() : 画像ファイルの読み出し
  • cv2.blur() : 画像の平均化
  • cv2.vconcat() : 画像を縦に連結
  • cv2.imwrite() : 画像を保存する
環境
  • windows10 home
  • Anaconda 3/ jupyter notebook 5.6.0
  • Python 3.7.0
  • OpenCV 4.0.0
準備

画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、ファイル名'masaki.jpg', 'kabukicho.jpg'で、jupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました。

f:id:T_A_T:20190414145151j:plain
twins2.jpg

コード
import cv2  # OpenCVのインポート

img = cv2.imread('twins2.jpg')  # 画像の読み出し
img_1 = img[:80:,:].copy()  # 画像のy0~79までをimg_1にコピー
img_2 = img[80:340,:,:].copy()  # 画像のy80~339までをimg_2にコピー
img_3 = img[340:,:,:].copy()  # 画像のy340~400までをimg_2にコピー

img_1_blur = cv2.blur(img_1,(15,15))  # img_1をぼかす
img_3_blur = cv2.blur(img_3,(15,15))  # img_3をぼかす

img_blur = cv2.vconcat([img_1_blur,img_2,img_3_blur])# 3つの画像を縦に連結

cv2.imwrite('twins2_blur.jpg',img_blur)  # 画像の保存

実行結果

上下がぼかされた画像が作られます。

f:id:T_A_T:20190414145238j:plain

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

OpenCV-Python Tutorials >>画像の平滑化
Pythonの文法メモ > 【OpenCV】画像の連結
Pythonの文法メモ > 【OpenCV】フィルタリングによる画像のスムージング

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

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