図形が発光しているように見せる
図形がネオンサインのように光を放っているように見せます。まず図形を描いてぼかし処理でにじませ、その上にもう一度同じ図形を描きます。図形の周りに同じ色のにじみを描くことで図形が発光しているように見えます。
使った関数・メソッド
- cv2.blur() : 画像のぼかし処理
環境
コード
元の画像はこちらのコードで描きます。
import cv2 import numpy as np img = np.zeros((400, 600, 3), np.uint8) def figs(): cv2.circle(img,(150,150),100,(40,200,255),20,cv2.LINE_AA) cv2.rectangle(img,(350,200),(520,300),(220,250,15),20,cv2.LINE_AA) figs() cv2.imwrite('figs.jpg',img)
一度画像を描いて、45x45pixelのカーネル(フィルター)を用いたcv2.blur()を適用してぼかし処理してから同じ画像を重ね描きします。
import cv2 import numpy as np img = np.zeros((400, 600, 3), np.uint8) def figs(): cv2.circle(img,(150,150),100,(40,200,255),20,cv2.LINE_AA) cv2.rectangle(img,(350,200),(520,300),(220,250,15),20,cv2.LINE_AA) figs() img = cv2.blur(img,(45,45)) figs() cv2.imwrite('figs.jpg',img)
実行結果
発光しているように見えます。
コード
ぼかし→描画を繰り返します。
import cv2 import numpy as np img = np.zeros((400, 600, 3), np.uint8) def figs(): cv2.circle(img,(150,150),100,(40,200,255),20,cv2.LINE_AA) cv2.rectangle(img,(350,200),(520,300),(220,250,15),20,cv2.LINE_AA) figs() img = cv2.blur(img,(45,45)) figs() img = cv2.blur(img,(45,45)) figs() img = cv2.blur(img,(45,45)) figs() cv2.imwrite('figs.jpg',img)
実行結果
先ほどより発光が強くなりました。
以下のサイトを参考にさせていただきました
Pythonの文法メモ >> 【OpenCV】フィルタリングによる画像のスムージング