Python 대량 이미지 워 터 마크 제거 방법

평소 에는 인터넷 의 일부 소 재 를 사용 하기 위해 워 터 마크 를 맞 는 경우 가 많 습 니 다.포 토 샵 을 모 르 면 워 터 마크 를 제거 할 수 없 거나 워 터 마크 를 대량으로 제거 할 수 없습니다.이것들 은 우리 의 업무 효율 에 매우 영향 을 미친다.
오늘 은 Python+OpenCV 3 단계 로 워 터 마크 를 제거 하고 워 터 마크 에 사용 할 라 이브 러 리:cv2,numpy.cv2 는 OpenCV 를 기반 으로 한 이미지 처리 라 이브 러 리 로 이미지 에 부식,팽창 등 을 할 수 있다.numpy 는 강력 한 처리 매트릭스 와 차원 연산 라 이브 러 리 입 니 다.
그림 워 터 마크 제거 원리
1.소음 의 특징 을 표시 하고 cv2.inRange 이치 화 표지 소음 으로 그림 을 이치 화 처리 합 니 다.구체 적 인 코드 는 cv2.inRange(img,np.array([200,200,240]),np.array([255,255,255])를 사용 하여[200,200]~[255,255,255]이외 의 색 채 를 0 으로 처리 합 니 다.
2.OpenCV 의 dilate 방법 을 사용 하여 특징의 구역 을 확장 하고 이미지 처리 효 과 를 최적화 합 니 다.
3.inpaint 방법 을 사용 하여 소음 마스크 를 매개 변수 로 하여 그림 을 추리 하고 복원 합 니 다.
오른쪽 하단 의 워 터 마크 제거 절차
1.원본 그림 에서 오른쪽 아래 부분 을 캡 처 하고 새 그림 으로 저장 합 니 다.
2.워 터 마크 식별,색상 값:[200,200,200]~[255,255,255]
3.워 터 마크 를 제거 하고 그림 을 복원 합 니 다.
4.원본 그림,워 터 마크 를 제거 한 새 그림 을 중첩 합 친다.
구현 코드
효과 대비

import cv2
import numpy as np
from PIL import Image
import os
​
dir = os.getcwd()
path = "1.jpg"
newPath = "new.jpg"
img=cv2.imread(path,1)
hight,width,depth=img.shape[0:3]
​
#  
cropped = img[int(hight*0.8):hight, int(width*0.7):width]  #      [y0:y1, x0:x1]
cv2.imwrite(newPath, cropped)
imgSY = cv2.imread(newPath,1)
​
#       , [200,200,200]-[250,250,250]       0
thresh = cv2.inRange(imgSY,np.array([200,200,200]),np.array([250,250,250]))
#            
kernel = np.ones((3,3),np.uint8)
#       
hi_mask = cv2.dilate(thresh,kernel,iterations=10)
specular = cv2.inpaint(imgSY,hi_mask,5,flags=cv2.INPAINT_TELEA)
cv2.imwrite(newPath, specular)
​
#    
imgSY = Image.open(newPath)
img = Image.open(path)
img.paste(imgSY, (int(width*0.7),int(hight*0.8),width,hight))
img.save(newPath)
실현 효 과 는 다음 그림 과 같 습 니 다.이 기본 값 은 흰색 오른쪽 아래 에 있 는 워 터 마크 를 제거 하 는 것 입 니 다.여러분 은 자신의 수요 에 따라 변경 할 수 있 습 니 다.

파 이 썬 대량 이미지 워 터 마크 에 대한 예제 코드 에 관 한 글 은 여기까지 입 니 다.파 이 썬 대량 이미지 워 터 마크 에 관 한 예제 코드 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기