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()
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!