[Python] 357 画像に枠を描画

[M1 Mac, Ventura 13.3.1, Python 3.10.4]

macOSのプレビューでは外枠を直接描けないようなので、Pythonで描きました。

下のスクリプトでは太さ2pxの黒い外枠を描画します。

C++画像加工アプリにこの機能を追加したいです。

import cv2
import numpy as np

# 画像ファイル設定
pic_name="test.PNG"
pic_name_out="test2.PNG"

# 枠ピクセル数
num_insert=2

# 画像読み込み
img = cv2.imread(pic_name,cv2.IMREAD_COLOR)

# 枠追加処理(上下)
bk1=np.zeros((num_insert,img.shape[1],3),np.uint8)

# 上下枠色設定
bk1[:,:,0]=bk1[:,:,0]+0 # 青
bk1[:,:,1]=bk1[:,:,1]+0 # 緑
bk1[:,:,2]=bk1[:,:,2]+0 # 赤
array=np.insert(img, 0, bk1, axis=0)
array=np.insert(array, array.shape[0], bk1, axis=0)

# 枠追加処理(左右)
bk2=np.zeros((array.shape[0],num_insert,3),np.uint8)

# 左右枠色設定
bk2[:,:,0]=bk2[:,:,0]+0 # 青
bk2[:,:,1]=bk2[:,:,1]+0 # 緑
bk2[:,:,2]=bk2[:,:,2]+0 # 赤
array=np.insert(array, [0], bk2, axis=1)
array=np.insert(array, [array.shape[1]], bk2, axis=1)

# 画像出力
cv2.imwrite(pic_name_out,np.array(array))

参考サイト