使用 Python 将 OpenCV cv.Rectangle(img, pt1, pt2) 转换为 NumPy 数组
Converting OpenCV cv.Rectangle(img, pt1, pt2) into NumPy array with Python
我知道矩形的坐标(x1,y1,x2,y2) 我想裁剪矩形部分
我已经尝试使用与绘制矩形相同的坐标参数进行裁剪。
black = np.zeros((1080, 720, 3), dtype = "uint8")
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
cv2.rectangle(black, (80,500), (150, 600), (0,255,0), 1, 8, 0)
crop = frame[80:500,150:600]
cv2.imshow("Black", black)
cv2.imshow("crop", crop)
cv2.imshow("Orginal", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
选择的输出不是黑色上绘制的矩形。
Numpy 索引是这样工作的:
crop = frame[y1:y2, x1:x2]
所以你需要:
crop = frame[80:150, 500:600]
而不是:
crop = frame[80:500, 150:600]
或者也许:
crop = frame[500:600, 80:150]
但我没有安装 OpenCV 来检查任何东西。
我知道矩形的坐标(x1,y1,x2,y2) 我想裁剪矩形部分
我已经尝试使用与绘制矩形相同的坐标参数进行裁剪。
black = np.zeros((1080, 720, 3), dtype = "uint8")
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
cv2.rectangle(black, (80,500), (150, 600), (0,255,0), 1, 8, 0)
crop = frame[80:500,150:600]
cv2.imshow("Black", black)
cv2.imshow("crop", crop)
cv2.imshow("Orginal", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
选择的输出不是黑色上绘制的矩形。
Numpy 索引是这样工作的:
crop = frame[y1:y2, x1:x2]
所以你需要:
crop = frame[80:150, 500:600]
而不是:
crop = frame[80:500, 150:600]
或者也许:
crop = frame[500:600, 80:150]
但我没有安装 OpenCV 来检查任何东西。