2016-08-15 9 views
1

私が探しているのは、4つのビデオフィードをRGB、B、G、Rのチャンネルを4つのフレームフィードにスタックできるようにすることです。ここで私のコードは私がエラーを取得する "すべての入力配列は次元数が同じでなければならない。これを処理する方法があるかどうかを知りたがっていますか?RGBを挿入すると全体的な結果を見ることができますGRAYフレームがどこにあるRGBのフレーム以外たいと思っていますと、あるべきスタックcv2 RGBチャンネルとシングルチャンネルのフレーム

import numpy as np 
import cv2 

cap = cv2.VideoCapture(0) 
ret, frame = cap.read() 

while(True): 
    ret, frame = cap.read() 
    # Resizing down the image to fit in the screen. 
    b,g,r = cv2.split(frame) 
    RGB = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA) 
    GRAY = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 

    # creating another frame. 
    channels = cv2.split(frame) 
    frame_merge = cv2.merge(channels) 

    # horizintally concatenating the two frames. 
    final_frame = cv2.hconcat((frame, frame_merge)) 
    final_frame2 = cv2.hconcat((frame, frame_merge)) 
    final = cv2.vconcat((final_frame, final_frame2)) 

    frame1 = np.hstack((RGB,b)) 
    frame2 = np.hstack((g,r)) 
    final = np.vstack((frame1,frame2)) 
    cv2.imshow('frame', final) 

    k = cv2.waitKey(30) & 0xff 
    if k == 27: 
     break 

cap.release() 
cv2.destroyAllWindows() 

答えて

0

は、ここに私のソリューションです:あなたは私の上記のコードを取ると、GRAY = CV2を追加した後GRAYとRGBを交換した場合

import numpy as np 
import cv2 

cap = cv2.VideoCapture(0) 
ret, frame = cap.read() 

red = np.zeros(frame.shape, 'uint8') 
green = np.zeros(frame.shape, 'uint8') 
blue = np.zeros(frame.shape, 'uint8') 

while(True): 
    ret, frame = cap.read() 
    b, g, r = cv2.split(frame) 

    red[..., 0], red[..., 1], red[..., 2] = r, r, r 
    green[..., 0], green[..., 1], green[..., 2] = g, g, g 
    blue[..., 0], blue[..., 1], blue[..., 2] = b, b, b 

    final = cv2.vconcat((
     cv2.hconcat((frame, blue)), 
     cv2.hconcat((green, red)) 
    )) 

    cv2.imshow('frame', final) 

    k = cv2.waitKey(30) & 0xff 
    if k == 27: 
     break 

cap.release() 
cv2.destroyAllWindows() 
+0

。 cvtColor(frame、cv2.COLOR_BGR2GRAY)は、私がやりたい結果を見ることができます。カメラの前に赤いオブジェクトを置くと、赤いチャネルが赤く強調され、その他の色は赤く強調されます。最初のGRAYフレームの代わりに、それを通常の色付きフレームにします。 –

+0

@MichaelHenderson私が正しく理解しているかどうかわからないのは、自分の解決策が編集前に達成しようとしていたものではないということですか? – BPL

+0

@MichaelHenderson私は新しいソリューションを追加しました。探しているものがあれば教えてください。さもないともう少し説明してください。 – BPL

関連する問題