如何使用使用python+opencv解析視頻并處理視頻中的水印-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“如何使用使用python+opencv解析視頻并處理視頻中的水印”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“如何使用使用python+opencv解析視頻并處理視頻中的水印”吧!

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于成都定制網(wǎng)頁(yè)設(shè)計(jì),高端網(wǎng)頁(yè)制作,對(duì)純水機(jī)等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)網(wǎng)站推廣優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。

  1. 使用python+opencv解析視頻

  使用opencv進(jìn)行視頻解析,獲取每一幀圖像后需要對(duì)該幀圖像進(jìn)行模塊匹配進(jìn)行水印圖像查詢。

  (對(duì)多個(gè)視頻操作,查詢到水印的視頻存儲(chǔ)到list中等待下一步處理,未查詢到的視頻存儲(chǔ)到失敗list中)

  logger.info('開(kāi)始進(jìn)行視頻圖像處理...')

  watermark_path = "G:\\video\\watermark\\test.png"

  video_path = "G:\\video\\video.mp4"

  video = cv2.VideoCapture(video_path)

  index = 0

  success, frame = video.read()

  while success:

  logger.info('開(kāi)始進(jìn)行每一幀圖像處理!')

  // 通過(guò)opencv中模塊匹配進(jìn)行判斷該幀是否存在水印

  result = self.find_watermark(frame, watermark_path)

  if result == 1:

  self.deal_list.append(watermark_path, video_path)

  video.release()

  logger.info('視頻匹配成功!跳出循環(huán)!')

  return True

  if index == 600:

  logger.error('600幀均未找到視頻水印!' + "路徑:" + str(video_path))

  video.release()

  return False

  success, frame = video.read()

  index = index + 1

  self.no_watermark_list.append(video_info)

  logger.error('視頻處理失敗!沒(méi)有找到幀圖像!' + str(success) + "路徑:" + str(video_path))

  2. 使用opencv+numpy查詢水印

  logger.info('開(kāi)始進(jìn)行幀圖像模塊匹配...')

  template = cv2.imread(watermark_path)

  // 進(jìn)行模塊匹配

  res = cv2.matchTemplate(img, template, cv2.TM_CCOEFF_NORMED)

  // 指定一個(gè)閾值

  threshold = 0.8

  // 將匹配區(qū)域的坐標(biāo)存儲(chǔ)在numpy數(shù)組中

  loc = np.where(res >= threshold)

  x = loc[0]

  y = loc[1]

  if len(x) and len(y):

  for pt in zip(*loc[::-1]):

  // 存儲(chǔ)找到水印的坐標(biāo)方便ffmpeg進(jìn)行水印去除操作

  self.watermark_index_left = pt[0]

  self.watermark_index_top = pt[1]

  logger.info('幀圖像模塊匹配成功!left:' + str(pt[0]) + ",top:" + str(pt[1]))

  return True

  else:

  logger.error('幀圖像模塊匹配失敗!繼續(xù)重試!')

  return False

  3. 使用ffmpeg處理視頻中水印

  ffmpeg需要在本地環(huán)境安裝,windows安裝自行搜索,安裝后需配置環(huán)境變量!

  logger.info('ffmpeg開(kāi)始處理單個(gè)視頻水印... 視頻路徑:' + video_path)

  try:

  // ffmpeg中去除水印,需要提供視頻路徑,水印在視頻中坐標(biāo)以及水印寬高

  text = 'ffmpeg -i \"%s\" -vf "delogo=x=%s:y=%s:w=%s:h=%s:show=0" -c:a copy \"%s\" -y' % (

  video_path, watermark_left, watermark_top, watermark_width, watermark_height, out_video_path)

  res = os.system(text)

  if res != 0:

  self.no_watermark_list.append(video_path)

  logger.error('ffmpeg處理單個(gè)視頻水印失敗! 視頻路徑:' + video_path)

  return False

  logger.info('ffmpeg處理單個(gè)視頻水印成功! 視頻路徑:' + video_path)

  return True

  except Exception as e:

  logger.error('ffmpeg處理單個(gè)視頻水印出現(xiàn)異常! 視頻路徑:' + video_path + ";異常原因:" + str(e))

  self.no_watermark_list.append(video_path)

  return False無(wú)錫婦科醫(yī)院哪家好 http://www.xasgfk.cn/

  4. 使用tkinter構(gòu)建圖形界面

  該處代碼不全,具體創(chuàng)建,可參考其他文章

  self.OpenLabel = Label(self, text="視頻路徑:")

  self.OpenLabel.grid(row=0, column=0)

  self.OpenEntry = Entry(self, textvariable=self.openVideoPath, width=45)

  self.OpenEntry.grid(row=0, column=1)

  self.OpenButton = Button(self, text="選擇視頻路徑", command=self.selectOpenVideoPath)

  self.OpenButton.grid(row=0, column=2)

  self.OpenMarkLabel = Label(self, text="水印路徑:")

  self.OpenMarkLabel.grid(row=1, column=0)

  self.OpenMarkEntry = Entry(self, textvariable=self.openMarkPath, width=45)

  self.OpenMarkEntry.grid(row=1, column=1)

  self.OpenMarkButton = Button(self, text="選擇水印路徑", command=self.selectOpenMarkPath)

  self.OpenMarkButton.grid(row=1, column=2)

  5. 使用pyinstaller打包應(yīng)用

  安裝pyinstaller : pip install pyinstaller

  進(jìn)入python環(huán)境的Lib中找到pyinstaller,在該目錄下運(yùn)行cmd,執(zhí)行以下命令

  pyinstaller.exe -D -w --add-binary C:\Users\wjz\Anaconda3\envs\spiderTest\Lib\site-packages\cv2\opencv_ffmpeg410_64.dll;. E:\video\pyexe.py

  說(shuō)明:

  1)-D 指的是生成結(jié)果是一個(gè)目錄,各種第三方依賴、資源和exe同時(shí)存儲(chǔ)在該目錄

  2)-w 指的是不生成黑窗口,直接顯示圖形化界面

  3)–add-binary 后面是opencv的dll文件路徑,如果不加可能生成的opencv版本出現(xiàn)問(wèn)題

  4)最后指定要打包的py文件路徑

  執(zhí)行后會(huì)生成三個(gè)文件build,dist,pyexe.spec(指定文件名),主程序pyexe.exe入口在dist文件夾中

  找到exe文件執(zhí)行即可

到此,相信大家對(duì)“如何使用使用python+opencv解析視頻并處理視頻中的水印”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

網(wǎng)站名稱:如何使用使用python+opencv解析視頻并處理視頻中的水印-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://muchs.cn/article30/ejjso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)電子商務(wù)、服務(wù)器托管動(dòng)態(tài)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)