Python+OpenCV 3 단계 로 워 터 마크 제거

추리 원리
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 방법 을 사용 하여 소음 마스크 를 매개 변수 로 하여 그림 을 추리 하고 복원 합 니 다.
2.추리 절차
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)

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)
효과 도
워 터 마크 안 가기 전:
在这里插入图片描述
간 후:
在这里插入图片描述
파 이 썬+OpenCV 를 이용 하여 3 단계 로 워 터 마크 를 제거 하 는 글 을 소개 합 니 다.더 많은 파 이 썬+OpenCV 와 관련 된 워 터 마크 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기