python - 使用Python将OpenCV cv.Rectangle(img,pt1,pt2)转换为NumPy数组

标签 python numpy opencv roi

我知道Rectange(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进行检查。

关于python - 使用Python将OpenCV cv.Rectangle(img,pt1,pt2)转换为NumPy数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56649730/

相关文章:

python - 如何 "unfinalize"图表?

python/clojure 相当于 mathematica 的 NestWhileList

python - 使用 Elasticsearch 获取日志文件

python - 有条件的 numpy.cumsum?

python - 从矩阵 B 的每一行中减去矩阵 A 的每一行,无需循环

opencv - OpenCV fisheye::projectpoints断言失败

python - super (类型,obj): obj must be an instance or subtype of type

python - 修复 *displaying* 在 python 中 float 时的精度问题

c++ - LookUp Table for 16-Bit Mat 高效的方法?

linux - 我如何远程处理(低延迟)Raspicam 输出?