OpenCV绘图调用疑问:教程中的相关代码是否无实际作用?
OpenCV绘图函数赋值问题解答
在Python版OpenCV中,cv.rectangle和cv.putText这类绘图函数会直接原地修改传入的图像数组,同时也会返回修改后的数组副本。所以教程里的写法(不赋值)和你修改后的写法(赋值给frame),实际效果完全一致——因为原frame数组已经被改动了,这就是你看不到差异的原因。
如果还是看不到绘图效果,可以从这几个方面排查:
- 确认执行绘图操作后,有没有调用
cv.imshow显示图像,以及配合cv.waitKey让窗口保持显示(没有这两步的话,图像不会被渲染出来) - 检查绘图区域的坐标是否在画面可视范围内:比如你设置的矩形是(10,2)到(100,20),这个区域很小,如果视频分辨率很高,可能会被忽略或者显示在窗口角落
- 检查颜色对比度:白色矩形+黑色文字,如果原视频的背景也是浅色,可能会导致文字或矩形难以分辨,可以尝试更换更显眼的颜色测试
- 确认
frame是可修改的数组:比如从视频捕获的帧一般是可写的,但如果是经过某些只读处理的数组,可能无法被原地修改(这种情况较少见)
内容的提问来源于stack exchange,提问作者Xaver
相关产品推荐
相关产品推荐

