使用Python+OpenCV實現(xiàn)在視頻中某對象后添加圖像
現(xiàn)在,讓我們繪制并查看logo和視頻的第一幀:
plt.imshow(logo)plt.show()
plt.imshow(cv2.cvtColor(frame,cv2.COLOR_BGR2RGB))plt.show()
圖像掩碼技術
框架尺寸比logo大得多,因此我們可以把logo放在許多地方。
然而,把logo放在畫面的中心對我來說似乎是最合適的,因為大部分的動作都會發(fā)生在視頻中的那個區(qū)域,因此我們將把logo放入框架中,如下所示:
不用擔心標志中的黑色背景,我們將在稍后的代碼中將黑色區(qū)域中的像素值設置為1,F(xiàn)在我們要解決的問題是處理移動物體出現(xiàn)在我們放置標志的同一區(qū)域中。
如前所述,我們需要使logo允許自己被移動對象遮擋。
現(xiàn)在,我們將使其中放置logo的區(qū)域具有廣泛的像素值。理想情況下,此區(qū)域中的所有像素值都應相同,那我們怎么做呢?
我們必須使綠色虛線框包圍的墻像素具有相同的值。我們可以借助HSV(色調、飽和度、值)顏色空間來完成此操作:
我們的圖像是在RGB色彩空間中的,我們將把它轉換成HSV圖像。下圖是HSV版本:
下一步是查找綠色虛線框內(nèi)零件的HSV值范圍,結果顯示框中的大多數(shù)像素的范圍從[6,10,68]到[30,36,122],它們分別是HSV的上下范圍。
現(xiàn)在使用這個HSV值范圍,我們可以創(chuàng)建一個二進制掩碼,此掩碼只是像素值為0或255的圖像,因此在HSV值的上下范圍內(nèi)的像素將等于255,其余像素將為0。
