OpenCV で濃淡をはっきりさせるために、「ぼかしを引く」という操作をする。
コード
元画像に「ぼかし」を混ぜると輪郭が曖昧になるが、逆に「ぼかし」を引くと輪郭を強調できる。コードは下記の記事とほぼ同じ。パラメータ v を負の値に設定して画像を編集する。
コードに画像ファイル名を渡して実行する。
import cv2
import sys
import numpy as np
# ぼかす( v < 0 で濃淡を強調する)
def b(img1,i,v):
img2 = cv2.blur(img1,(i,i))
img1f = np.float32(img1)
img2f = np.float32(img2)
return ct(img1f * (1. - v) + img2f * v)
# 値を0-255にclipして、typeをuint8にする
def ct(img):
return np.clip(img,0,255).astype(np.uint8)
file_name = sys.argv[1]
img = cv2.imread(file_name)
img2 = b(img,20,-0.8)
cv2.imwrite(file_name.replace(".",".out."),img2)
元画像と、濃淡を強調した画像
コードを実行して濃淡を強調した画像を作る。
濃淡を強調すると、画像は硬く、はっきりとした印象になる。のっぺりとした部分はザラザラし、ノイズが強調されることもある。
パラメータを極端な値にすると、印象が強くなる。上記画像では、広さi = 3000 比率 v = -2.0 とした。
コメント