Maison >développement back-end >Tutoriel Python >Programme de réparation d'images basé sur Python (implémentant la suppression des filigranes)

Programme de réparation d'images basé sur Python (implémentant la suppression des filigranes)

不言
不言original
2018-06-04 11:36:153762parcourir

Cet article vous présente principalement les informations pertinentes sur le programme de réparation d'images Python, qui peut être utilisé pour supprimer les filigranes dans les images. Il est principalement implémenté à l'aide du framework OpenCV. L'article le présente en détail à travers l'exemple de code. est nécessaire Les amis peuvent s'y référer, jetons un coup d'œil ci-dessous

Programme de réparation d'images - peut être utilisé pour supprimer les filigranes

dans la vraie vie, nous pouvons rencontrer des images belles ou précieuses qui sont perturbées par le bruit, comme des plis sur de vieilles photos, de la poussière ou des taches sur l'objectif, ou des images que nous souhaitons utiliser mais qui comportent des filigranes gênants, alors existe-t-il un moyen pour éliminer ces bruits ?

La réponse est oui, c'est toujours l'excellent framework OpenCV que nous avons utilisé d'innombrables fois.

OpenCV

À l'heure actuelle, OpenCV est progressivement devenue une plateforme générale de recherche fondamentale et de développement de produits. Le nom OpenCV contient la signification d’Open et de Computer Vision. En fait, Open fait référence à Open Source (open source, c'est-à-dire code open source) et Computer Vision fait référence à la vision par ordinateur. Le développement d'OpenCV a un impact important sur le développement de logiciels. Si vous souhaitez en savoir plus, vous pouvez vous référer à cet article : http://www.jb51.net/article/127911.htm

Aperçu de l'effet


Principe de réparation d'image

Comment OpenCV l'implémente-t-il C'est simple ? En d’autres termes, le développeur calibre les caractéristiques du bruit et utilise les caractéristiques de couleur autour du bruit pour déduire la couleur de l’image qui doit être réparée, réalisant ainsi une réparation de l’image.

Le programme implémente une analyse

  • pour calibrer les caractéristiques du bruit et utiliser cv2.inRange pour binariser le bruit Binariser l'image, code spécifique : cv2.inRange(img, np.array([240, 240, 240]), np.array([255, 255, 255])), [240, 240, Couleurs autres. plus de 240]~[255, 255, 255] sont traités comme 0 ;

  • Utilisez la méthode de dilatation d'OpenCV pour étendre la zone de fonctionnalités et optimiser l'effet de traitement de l'image

  •  ;
  • Utilisez la méthode inpaint, en utilisant le masque de bruit comme paramètre, pour raisonner et réparer l'image

Code complet

#coding=utf-8
#图片修复

import cv2
import numpy as np

path = "img/inpaint.png"

img = cv2.imread(path)
hight, width, depth = img.shape[0:3]

#图片二值化处理,把[240, 240, 240]~[255, 255, 255]以外的颜色变成0
thresh = cv2.inRange(img, np.array([240, 240, 240]), np.array([255, 255, 255]))

#创建形状和尺寸的结构元素
kernel = np.ones((3, 3), np.uint8)

#扩张待修复区域
hi_mask = cv2.dilate(thresh, kernel, iterations=1)
specular = cv2.inpaint(img, hi_mask, 5, flags=cv2.INPAINT_TELEA)

cv2.namedWindow("Image", 0)
cv2.resizeWindow("Image", int(width / 2), int(hight / 2))
cv2.imshow("Image", img)

cv2.namedWindow("newImage", 0)
cv2.resizeWindow("newImage", int(width / 2), int(hight / 2))
cv2.imshow("newImage", specular)
cv2.waitKey(0)
cv2.destroyAllWindows()

Recommandations associées :


Méthodes de traitement par lots de fichiers de données et scientifiques calculs basés sur python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn