了解OpenCV的绘图调用:这些代码行是无关的吗?

5jvtdoz2  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(158)

来源: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))

然而,据我所知,需要将它们的返回值保存到帧中,才能有任何更改,因为它们没有“就位”:

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))

但即使这样,我也看不出结果有什么不同。
我错过什么了吗?

yvfmudvl

yvfmudvl1#

是的,你误会了。
这些调用作用于你传递给它们的数组对象,它们修改图像数组。

  • 绝对没有理由 * 捕获返回值,因为它与您传入的相同的数组对象。不仅相等,而且相同,相同。对同一个对象的引用。不要捕获返回值。

如果您没有看到某些内容,这是有原因的,但这不是原因。您没有提供足够的代码来重现您可能遇到的任何问题。

相关问题