PythonのOpenCVで特定の画像と同じサイズの黒塗り+特定領域の白塗り画像を作成する
開発環境は、Windows7 Professional(32bit) + Python 2.7.10.12+OpenCV 3.4.0。
・seemless_cloningを使うためにマスク画像を作成したかったのでメモ。
・今回、自分が使用した画像は、1956(幅)×796(高さ)の画像。
# -*- coding:utf-8 -*- import numpy as np import cv2 image = cv2.imread("0.jpg") # 同じサイズで黒塗りしたい画像を読み込む imagearray = np.zeros((image.shape[0],image.shape[1],image.shape[2]),np.uint8) # 特定領域だけ白く塗りつぶすようにする # 左上から時計周りに描画する count = np.array([[30,30],[30,60],[60,60],[60,30]]) cv2.fillPoly(imagearray, pts=[count], color=(255,255,255)) # 複数個所作りたければ、もう1回領域を定義し、埋める # ただし、画像の範囲外を飛び出した定義をしないことに注意 count = np.array([[300,300],[300,330],[330,330],[330,300]]) cv2.fillPoly(imagearray, pts=[count], color=(255,255,255)) cv2.imwrite("blank.jpg", imagearray) # 適当で被らない画像名で保存
完成した画像がこちら、