herrDeng網內搜尋

自訂搜尋

Ads

2023年10月18日 星期三

python版mediapipe利用ai影像分割製作黑柴在雪地行走效果


iPython code在此
#匯入套件
  1. import cv2
  2. import numpy as np
  3. import mediapipe as mp
#版次
  1. print(cv2.__version__)
  2. print(mp.__version__)
#背景圖設定,cap設定
  1. #shape = (720, 1280, 3) # y, x , RGB
  2. # 第一種方法,直接建立圖片
  3. #bg = np.zeros((720, 1280, 3), dtype=np.uint8)
  4. #bg[:, :] = [10,255, 120] #BGR :0,1,2
  5. bg=cv2.imread('hohuan.jpg')
  6. bg=cv2.resize(bg,(1280, 720))
  7. cap = cv2.VideoCapture(0)#('GX017986.MP4')
  8. cap.set(3, 1280)
  9. cap.set(4, 720)
#使用mp套件
  1. mp_draw=mp.solutions.drawing_utils
  2. mp_seg=mp.solutions.selfie_segmentation
#設seg
  1. seg=mp.solutions.selfie_segmentation.SelfieSegmentation(model_selection=1)
#while loop
  1. while cap.isOpened():
  2. success, im = cap.read()
  3. if not success:
  4. break
  5. im=cv2.resize(im, (1280, 720))
  6. im2=cv2.cvtColor(im, cv2.COLOR_BGRA2RGB)
  7. result=seg.process(im2)
  1.     #Numpy的tile()函數,就是將原矩陣橫向、縱向地複製
  2. mask=np.tile(result.segmentation_mask[:,:, np.newaxis], (1,1,3))>0.1
  3. grab=np.where(mask, im, bg)
  4. cv2.imshow('grab', grab)
  5. if cv2.waitKey(1) >0:
  6. break # 按鍵停止
  7. seg.close()
  8. cap.release()
  9. cv2.destroyAllWindows()
np.newaxis用法
x = np.array([10, 20, 30], float)
x2 = x[:, np.newaxis]
print(x2)
---result---
[[ 10.]
 [ 20.]
 [ 30.]]

沒有留言:

Related Posts Plugin for WordPress, Blogger...

熱門文章