python 事始め (5) 画像の回転

昔作ったもにはなかった見えるところが回転するような機能を追加します。マスク画像を回転すればいいので
すが,回転すると四隅が黒くなります。

元画像

回転後画像(45度)


これではまずいので,回転後の画像について,下記の画像と OR をとって,四隅を消します。

ORをとる画像

できた画像


ということで,目的の画像ができましたが,これをプログラムでやると,変換に結構時間がかかるようですの
で,必要な画像を一括変化して保存後,その都度呼び出すようにします。
下記が回転に使ったプログラムです。

mport cv2
import numpy as np
import matplotlib.pyplot as plt

# 画像読込
img = cv2.imread("E:/python-kaihatu/nanikana/mask-jp/01.jpg")
img1=  cv2.imread("E:/python-kaihatu/nanikana/mask-jp/00.jpg")
# 画像サイズ
height = img.shape[0]  # 高さ
width  = img.shape[1]  # 幅

#画像の回転行列
rot_matrix = cv2.getRotationMatrix2D((width/2,height/2),  # 回転の中心座標
                                      -45,                 # 回転する角度
                                      1,                  # 画像のスケール
                                    )

# アフィン変換適用
afin_img = cv2.warpAffine(img,               # 入力画像
                          rot_matrix,        # 行列
                          (width,height)     # 解像度
                         )

# 画像表示
img_OR = cv2.bitwise_or(afin_img, img1)
img_OR = cv2.bitwise_or(img1, afin_img)
cv2.imshow('img',img_OR)
cv2.imwrite('E:/python-kaihatu/nanikana/mask-r1/45-m.jpg', img_OR)
cv2.waitKey(0)
cv2.destroyAllWindows()

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA