画像の上下のみぼかす
写真の上下をぼかし、中央はそのまままにします。画像の上中下3つに分け、上下の画像をぼかし、最後に上中下を再度連結します。
使った関数・メソッド
- cv2.imread() : 画像ファイルの読み出し
- cv2.blur() : 画像の平均化
- cv2.vconcat() : 画像を縦に連結
- cv2.imwrite() : 画像を保存する
環境
準備
画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、ファイル名'masaki.jpg', 'kabukicho.jpg'で、jupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました。
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) # 画像の保存
実行結果
上下がぼかされた画像が作られます。
以下のサイトを参考にさせていただきました
OpenCV-Python Tutorials >>画像の平滑化
Pythonの文法メモ > 【OpenCV】画像の連結
Pythonの文法メモ > 【OpenCV】フィルタリングによる画像のスムージング