Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

図形が発光しているように見せる

 図形がネオンサインのように光を放っているように見せます。まず図形を描いてぼかし処理でにじませ、その上にもう一度同じ図形を描きます。図形の周りに同じ色のにじみを描くことで図形が発光しているように見えます。

使った関数・メソッド
  • cv2.blur() : 画像のぼかし処理
環境
  • windows10 home
  • Anaconda 3/ jupyter notebook 5.6.0
  • Python 3.7.0
  • OpenCV 4.0.0

コード

元の画像はこちらのコードで描きます。

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)

f:id:T_A_T:20210615180549j:plain

一度画像を描いて、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)
実行結果

発光しているように見えます。
f:id:T_A_T:20210615181034j:plain

コード

ぼかし→描画を繰り返します。

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)
実行結果

先ほどより発光が強くなりました。
f:id:T_A_T:20210615181303j:plain

以下のサイトを参考にさせていただきました

Pythonの文法メモ >> 【OpenCV】フィルタリングによる画像のスムージング

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村