iT邦幫忙

0

opencv mask 後可以旋轉照片嗎

  • 分享至 

  • xImage

如題
對圖片進行旋轉
想加上mask後的結果

用mask進行圖片旋轉 但是不行
https://colab.research.google.com/drive/1EE-ClaIIXlpKj4JtqW1LX5JopGfkbRGr?usp=sharing
我用colab 寫的

##出現提示欄進行授權
import os
from google.colab import drive
drive.mount('/content/drive')

#切換該目錄
os.chdir('/content/drive/My Drive/座標旋轉')
#確認目錄內容
os.listdir()

import cv2
import numpy as np
from google.colab.patches import cv2_imshow

#讀檔、調整圖片大小
img_o = cv2.imread('06-15_12_04_24_.jpg')
img_back = cv2.imread('1111.jpg')

#旋轉照片
(h, w) = img_o.shape[:2]
##找到圖片中心
(cX, cY) = (w // 2, h // 2)
##參數旋轉中心/旋轉角度(-順時+逆時)/參數縮放比
M = cv2.getRotationMatrix2D((cX, cY), -10, 1.0)
img_rotate = cv2.warpAffine(img_o, M, (w, h))

polygons = []
mask = np.zeros_like(img_o)
#讀取多邊形點資訊
with open('06-15_12_04_24_.txt') as f:
for line in f:
line = line[:-1]
#標注符號用逗號來分隔
line = line.split(',')
line = [int(n) for n in line]
points = line[1:]
points = [points[i:i+2] for i in range(0, len(points), 2)]
points = np.array(points)
polygons.append(points)

#畫MASK
for polygon in polygons:
cv2.fillPoly(mask,[polygon],(255,255,255))
cv2.fillPoly(img_back,[polygon],(0,0,0))
#產生新圖(原圖+mask圖片)
img = cv2.bitwise_and(img_o,mask)
img = cv2.bitwise_or(img,img_back)

#旋轉+mask
#旋轉照片
(h, w) = mask.shape[:2]
##找到圖片中心
(cX, cY) = (w // 2, h // 2)
##參數:旋轉中心/旋轉角度(-順時+逆時)/參數縮放比
M = cv2.getRotationMatrix2D((cX, cY), -10, 1.0)
#參數:輸入圖片/旋轉矩陣/輸出圖片大小
img_rotate2 = cv2.warpAffine(mask, M, (w, h))

#cv2_imshow(mask)
#cv2_imshow(img_o)
#cv2_imshow(img_rotate)
#cv2_imshow(img)
cv2_imshow(img_rotate2)

cv2.waitKey(0)
cv2.destroyAllWindows()

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答