Miniaplicativo Wechat para análise de código de marca d'água!

I. Introdução

Quando navegamos no WeChat Moments ou em outras plataformas sociais, geralmente encontramos alguns vídeos ou fotos interessantes, mas há marcas d'água odiosas nesses conteúdos. Essas marcas d'água não apenas afetam nossa percepção, mas também diminuem nossa imagem nas redes sociais. Portanto, o miniaplicativo de remoção de marca d'água do WeChat surgiu. Permite remover facilmente marcas d'água de fotos e vídeos.

2. Realização da função

1. Baixe a imagem ou vídeo com marca d'água

Primeiro, precisamos obter as fotos ou vídeos que precisam ser marcados com marca d'água do WeChat ou de outras mídias sociais. Isso pode ser obtido por meio de alguma biblioteca ou API de terceiros. Por exemplo:

```python

pedidos de importação

de bs4 import BeautifulSoup

def get_video(url):

cabeçalhos = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/58.0.3029.110 Safari/537.3'}

html = request.get(url, headers=headers).text

sopa = BeautifulSoup(html, 'lxml')

video_url = soup.find(id='video').get('src')

retornar video_url

def download_file(url, file_path=Nenhum):

cabeçalhos = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/58.0.3029.110 Safari/537.3'}

resposta = request.get(url, headers=headers, stream=True)

se não file_path:

file_path = url.split('/')[-1]

com open(file_path, 'wb') como f:

para trecho em response.iter_content(1024):

f.escrever(pedaço)

retornar file_path

```

O código acima demonstra como obter o arquivo de vídeo do URL do vídeo e como baixar o arquivo. Isso pode ser obtido analisando o código HTML bruto.

2. Remova a marca d'água

Depois de baixar a imagem ou vídeo correspondente, podemos usar a biblioteca OpenCV para remover a marca d'água. Aqui está um exemplo simples:

```python

importar cv2

def remove_watermark(image_path, output_path):

img = cv2.imread(image_path)

cinza = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

borrado = cv2.GaussianBlur(cinza, (11, 11), 0)

afiado = cv2.Canny(desfocado, 30, 150)

contornos = cv2.findContours(edged, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

contornos = contornos[0] if len(contornos) == 2 senão contornos[1]

cv2.drawContours(img, contornos, -1, (255, 255, 255), -1)

cv2.imwrite(output_path, img)

```

Este código demonstra como usar técnicas de detecção de borda e extração de contorno para identificar e remover marcas d'água de imagens. Observe que esse algoritmo não é exaustivo e pode não ser capaz de remover todos os tipos de marcas d'água.

Para vídeo, precisamos fazer isso lendo cada quadro do vídeo quadro a quadro. Podemos usar a biblioteca MoviePy para obter essa funcionalidade.

```python

importar moviepy.editor como mp

def remove_watermark(video_path, output_path):

video = mp.VideoFileClip(video_path)

no_watermark = video.fl_image(remove_watermark_frame)

no_watermark.write_videofile(output_path)

def remove_watermark_frame(quadro):

# Código para remover marca d'água de quadro único

quadro de retorno

```

A primeira parte do código define uma função de desaguamento natural e a segunda parte do código usa a biblioteca MoviePy para processamento quadro a quadro. Cada quadro é passado para a função remove_watermark_frame, que usa técnicas semelhantes à marca d'água de imagem para remover a marca d'água em cada quadro.

3. Gere fotos ou vídeos compartilhados

 

Acho que você gosta

Origin blog.csdn.net/weixin_47245419/article/details/129917791
Recomendado
Clasificación