Python OpenCV 空間フィルタ #5

株式会社リュディアです。Python を使った画像処理として OpenCV を使った方法をまとめていきます。

前回までの Python OpenCV 空間フィルタ のまとめへのリンクは以下を参考にしてください。

エッジ抽出を行う他のフィルタとしてEmboss(エンボス)フィルタについてまとめます。エンボスと言われて思い出すものはありますか?日本語で浮き出し加工とも言われていて、インクを使わずに浮き出し技術により文字や絵柄を印刷するものや手法のことです。身近なものだとクレジットカードやキャッシュカードの名前やカード番号がエンボス加工です。具体的なイメージができたところでさっそくコードを見ていきましょう。

import cv2
import numpy as np

filebase = 'lena'
path = filebase + '.tiff'
image = cv2.imread(path, 1)
gray_image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)

kernel = np.array([[-2, -1, 0],
                  [-1,  1, 1],
                  [-1,  1, 2]])

offset = 128

emboss = cv2.filter2D(gray_image, -1, kernel, delta=offset)

cv2.imshow('emboss', emboss)

cv2.waitKey(0)
cv2.destroyAllWindows()

読み込んだ画像をグレイスケールに変換し、3x3 のカーネルを設定しているだけです。ではフィルタリング結果を見てみましょう。エンボス処理をした画像は以下のようになります。

画像1

エンボス処理された画像、と言われるとそれっぽいですよね。

OpenCV 空間フィルタに関するまとめの続きは以下からどうぞ。

では、ごきげんよう。


この記事が気に入ったらサポートをしてみませんか?