理解OpenCV的绘图调用:这些代码行无关紧要吗?



来源:https://docs.opencv.org/4.x/d1/dc5/tutorial_background_subtraction.html

在该教程中,以下代码行:

cv.rectangle(frame, (10, 2), (100,20), (255,255,255), -1)
cv.putText(frame, str(capture.get(cv.CAP_PROP_POS_FRAMES)), (15, 15),
cv.FONT_HERSHEY_SIMPLEX, 0.5 , (0,0,0))
使用

。然而,据我所知,人们需要将它们的返回值保存到框架中,因为它们没有"in place":

frame = cv.rectangle(frame, (10, 2), (100,20), (255,255,255), -1)
frame = cv.putText(frame, str(capture.get(cv.CAP_PROP_POS_FRAMES)), (15, 15),
cv.FONT_HERSHEY_SIMPLEX, 0.5 , (0,0,0))

但即使这样,我也看不出结果有什么不同。

我错过了什么吗?

是的,你误解了。

这些调用在传入的数组对象上对起作用。他们修改图像数组。

绝对没有理由捕捉返回值,因为同样传入的数组对象。不只是相等,而是相同,相同。对同一个对象的引用。捕获返回值

如果你看不见某样东西,一定是有原因的,但这不是原因。您没有提供足够的代码来重现您可能遇到的任何问题。

最新更新