我正在從事(pi)的opencv python項(xiàng)目。raspberry pi 4Pi 連接到具有分辨率的屏幕800x480。Picamera 還連接到 pi 以獲取實(shí)時(shí)視頻源。我需要在框架的右側(cè)顯示視頻源,在框架的左側(cè)顯示一些信息。為此,我有以下代碼:frame = cap.read()frame = imutils.resize(frame, width=400, height=480)frame2 = np.zeros((frame.shape[0], 400, frame.shape[2]), dtype=frame.dtype)(H, W) = frame.shape[:2](H1, W1) = frame2.shape[:2]print("Frame {}, {}".format(H, W))print("Frame2 {}, {}".format(H1, W1))cv2.putText(frame2, "Some Information", (5, 30), cv2.FONT_HERSHEY_COMPLEX_SMALL, 1, (0, 0, 255), 1)cv2.putText(frame2, "More Information", (5, 60), cv2.FONT_HERSHEY_COMPLEX_SMALL, 1, (0, 0, 255), 1)cv2.putText(frame2, "Some More Information", (5, 90), cv2.FONT_HERSHEY_COMPLEX_SMALL, 1, (0, 0, 255), 1)image = np.hstack((frame2, frame))cv2.namedWindow(win_name, cv2.WINDOW_NORMAL)cv2.setWindowProperty(win_name, cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)cv2.imshow(win_name, image)key = cv2.waitKey(1) & 0xFFif key == ord("q"): break代碼解釋:我調(diào)整frame了大小,400x480因?yàn)槲覀儞碛械目倢挾仁?00,所以我將把它分成兩個(gè)相等的部分,保持高度相同480。這frame將在右側(cè)顯示視頻源。我還創(chuàng)建了frame2它,它將在左側(cè)顯示信息。我也將它的寬度保持為400,不知道如何設(shè)置高度。運(yùn)行這段代碼我得到以下輸出:如您所見,輸出幀被平均分為寬度為 400 的兩部分,但高度已減少到 300,如打印輸出所示Frame 300, 400
Frame2 300, 400任何人都可以解釋為什么高度減少到300而不是480. 有什么辦法可以將高度保持在480. 請(qǐng)幫忙。謝謝
1 回答

PIPIONE
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
imutils.resize
實(shí)際上并沒有使用所需的寬度和高度來調(diào)整圖像的大小。它使用一個(gè)或另一個(gè)來縮放圖像。由于函數(shù)中的邏輯,它優(yōu)先于寬度而不是高度,因此所需圖像的寬度調(diào)整為 400,但高度調(diào)整為 300 以保持原始幀的縱橫比不變。換句話說,它以保持縱橫比的方式調(diào)整圖像大小。我在這里找到了imutils.resize
OpenCV 論壇的來源:https ://answers.opencv.org/question/208857/what-is-the-difference-between-cv2resize-and-imutilsresize/
如果您希望將圖像的大小調(diào)整為480 x 400
,請(qǐng)cv2.resize
改用:
frame = cv2.resize(frame, (400, 480))
添加回答
舉報(bào)
0/150
提交
取消