利用python?OpenCV去除視頻水印

上面的圖片展示的是視頻中的某一幀,需要將圖片中的,實(shí)體拓展和退出全屏以及右上角的兩個(gè)圓圈按鈕給刪除掉。
解決思路
一個(gè)很簡(jiǎn)單的想法就是,從圖片上其它兩塊背景相同的地方,拷貝兩個(gè)塊替換掉按鈕位置的塊
用下面的代碼先從視頻中導(dǎo)出一幀圖片,然后統(tǒng)計(jì)需要?jiǎng)h除按鈕的坐標(biāo)位置
實(shí)現(xiàn)代碼如下:
import cv2
# 創(chuàng)建讀取視頻的類
capture = cv2.VideoCapture("watermark.mp4")
# 得到視頻的高度
height = capture.get(cv2.CAP_PROP_FRAME_HEIGHT)
# 得到視頻的寬度
width = capture.get(cv2.CAP_PROP_FRAME_WIDTH)
# 得到視頻的幀數(shù)
count = capture.get(cv2.CAP_PROP_FRAME_COUNT)
# 得到視頻的幀速
fps = capture.get(cv2.CAP_PROP_FPS)
# 對(duì)視頻中的每一幀圖像做處理的函數(shù)
def process_fun(image):
? ? #去除視頻的水印
? ? #需要注意的是第一個(gè)范圍是y軸坐標(biāo)的范圍,第二個(gè)是x軸坐標(biāo)的范圍
? ? image[380:511,1070:1212] = image[100:231,1070:1212]
? ? image[8:63,1111:1275] = image[8:63,800:964]
? ? return image
#保存MP4的視頻
fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
# 創(chuàng)建寫(xiě)入視頻的類
out_video = cv2.VideoWriter()
out_video.open('processed_video.mp4',fourcc,fps,(int(width), int(height)),True)
while(True):
? ? # 讀取視頻中的每一幀
? ? ret, frame = capture.read()
? ? # 如果該幀存在則進(jìn)行操作
? ? if ret is True:
? ? ? ? # 對(duì)輸入的每一幀圖像處理
? ? ? ? result = process_fun(frame)
? ? ? ? # 保存已經(jīng)處理后的每一幀圖像
? ? ? ? out_video.write(result)
? ? ? ? #cv2.imwrite("precessed.jpg",result)
? ? # 如果該幀不存在則循環(huán)結(jié)束
? ? else:
? ? ? ? break
out_video.release()注意:上面讀取和保存視頻的格式是mp4的,如果是avi格式化的視頻需要修改VideoWriter_fourcc參數(shù)
到此這篇關(guān)于利用python OpenCV去除視頻水印的文章就介紹到這了,更多相關(guān)python OpenCV給視頻去除水印內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python線程池 ThreadPoolExecutor 的用法示例
這篇文章主要介紹了python線程池 ThreadPoolExecutor 的用法示例,幫助大家更好得理解和使用python線程池,感興趣的朋友可以了解下2020-10-10
使用Python實(shí)現(xiàn)PDF頁(yè)面設(shè)置操作
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)PDF頁(yè)面設(shè)置操作,例如旋轉(zhuǎn)頁(yè)面和調(diào)整頁(yè)面順序,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04
spark: RDD與DataFrame之間的相互轉(zhuǎn)換方法
今天小編就為大家分享一篇spark: RDD與DataFrame之間的相互轉(zhuǎn)換方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
python飛機(jī)大戰(zhàn)pygame游戲框架搭建操作詳解
這篇文章主要介紹了python飛機(jī)大戰(zhàn)pygame游戲框架搭建操作,設(shè)計(jì)pygame模塊游戲創(chuàng)建、初始化、精靈組設(shè)置等相關(guān)操作技巧,需要的朋友可以參考下2019-12-12
Pytorch基礎(chǔ)教程之torchserve模型部署解析
torchserve是基于netty網(wǎng)絡(luò)框架實(shí)現(xiàn)的,底層使用EpollServerSocketChannel服務(wù)進(jìn)行網(wǎng)絡(luò)通信,通過(guò)epoll多路復(fù)用技術(shù)實(shí)現(xiàn)高并發(fā)網(wǎng)絡(luò)連接處理,這篇文章主要介紹了Pytorch基礎(chǔ)教程之torchserve模型部署和推理,需要的朋友可以參考下2023-07-07

