2
我在Python3中使用Opencv2。
我正在爲新聞視頻撰寫「鏡頭邊界檢測」程序。
我只需要將一個視頻幀分成9個部分作爲開頭。但是,我不確定如何做到這一點,我在這個領域是新的。我用剪裁做了它,但在我看來,將一個框架分割成幾部分是不對的。
如何將視頻幀分成9個部分?
注意:當我使用「我的標題」進行搜索時,我無法獲得投資回報率答案。但現在看來,這是投資回報率。
我在Python3中使用Opencv2。
我正在爲新聞視頻撰寫「鏡頭邊界檢測」程序。
我只需要將一個視頻幀分成9個部分作爲開頭。但是,我不確定如何做到這一點,我在這個領域是新的。我用剪裁做了它,但在我看來,將一個框架分割成幾部分是不對的。
如何將視頻幀分成9個部分?
注意:當我使用「我的標題」進行搜索時,我無法獲得投資回報率答案。但現在看來,這是投資回報率。
您需要使用ROI並在數組中添加不同的圖像。
我和我的貓測試:
在這裏,你有代碼:(按鍵 'Q' 來完成它)
import cv2
cap = cv2.VideoCapture(0)
n_rows = 3
n_images_per_row = 3
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
height, width, ch = frame.shape
roi_height = height/n_rows
roi_width = width/n_images_per_row
images = []
for x in range(0, n_rows):
for y in range(0,n_images_per_row):
tmp_image=frame[x*roi_height:(x+1)*roi_height, y*roi_width:(y+1)*roi_width]
images.append(tmp_image)
# Display the resulting sub-frame
for x in range(0, n_rows):
for y in range(0, n_images_per_row):
cv2.imshow(str(x*n_images_per_row+y+1), images[x*n_images_per_row+y])
cv2.moveWindow(str(x*n_images_per_row+y+1), 100+(y*roi_width), 50+(x*roi_height))
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
@cybseccrypt我改進了顯示代碼,以便不必拖動窗口。讓我知道它是否適合你! –
因此,這就像如果你有9個攝像頭和你並在一個框架中顯示所有圖像,對嗎? –
沒有它的喜歡,如果我的一個框架形狀是720x 240我需要分割一個框架9件像240x80,之後,我會找到這些9件本地直方圖。爲了簡化更多,我想你可以認爲不是框架而是圖像。 – cybseccrypt
您正在尋找的東西是投資回報率。你可以參考SO上的問題[複製投資回報率與蟒蛇](http://stackoverflow.com/questions/25734545/opencv-using-python-copy-roi-to-new-smaller-image) – Croolman