日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

利用python?OpenCV去除視頻水印_python

作者:修煉之路? ? 更新時間: 2022-04-12 編程語言

上面的圖片展示的是視頻中的某一幀,需要將圖片中的,實體拓展和退出全屏以及右上角的兩個圓圈按鈕給刪除掉。

解決思路
一個很簡單的想法就是,從圖片上其它兩塊背景相同的地方,拷貝兩個塊替換掉按鈕位置的塊

用下面的代碼先從視頻中導出一幀圖片,然后統計需要刪除按鈕的坐標位置

實現代碼如下:

import cv2
# 創建讀取視頻的類
capture = cv2.VideoCapture("watermark.mp4")
# 得到視頻的高度
height = capture.get(cv2.CAP_PROP_FRAME_HEIGHT)
# 得到視頻的寬度
width = capture.get(cv2.CAP_PROP_FRAME_WIDTH)
# 得到視頻的幀數
count = capture.get(cv2.CAP_PROP_FRAME_COUNT)
# 得到視頻的幀速
fps = capture.get(cv2.CAP_PROP_FPS)

# 對視頻中的每一幀圖像做處理的函數
def process_fun(image):
? ? #去除視頻的水印
? ? #需要注意的是第一個范圍是y軸坐標的范圍,第二個是x軸坐標的范圍
? ? 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')
# 創建寫入視頻的類
out_video = cv2.VideoWriter()
out_video.open('processed_video.mp4',fourcc,fps,(int(width), int(height)),True)
while(True):
? ? # 讀取視頻中的每一幀
? ? ret, frame = capture.read()
? ? # 如果該幀存在則進行操作
? ? if ret is True:
? ? ? ? # 對輸入的每一幀圖像處理
? ? ? ? result = process_fun(frame)
? ? ? ? # 保存已經處理后的每一幀圖像
? ? ? ? out_video.write(result)
? ? ? ? #cv2.imwrite("precessed.jpg",result)
? ? # 如果該幀不存在則循環結束
? ? else:
? ? ? ? break
out_video.release()

注意:上面讀取和保存視頻的格式是mp4的,如果是avi格式化的視頻需要修改VideoWriter_fourcc參數

原文鏈接:https://xiulian.blog.csdn.net/article/details/121522493

欄目分類
最近更新