windows8.1 python3.4.4 opencv3.1.0
Tout d'abord, veuillez voir l'illusion rayée réelle.
Tu ne vois pas ce genre d'écureuil? (L'image est tirée de "Free Stock Photo Material Pakutaso")
Je vais l'essayer avec une illustration. Comme d'habitude, il s'agit d'une illustration d'un mexicain emprunté à "Irasutoya".
Faisons une illusion rayée.
Il est grossièrement divisé en trois étapes.
stripe.py
import numpy as np
import cv2
"""
Environnement: python3.4.4 openCV
Image originale: image_name
Image à sauvegarder: out_name
Sortie de l'image sous forme d'illusion de bande
(À première vue, ce n'est qu'une bande, mais l'illusion qui se dégage lorsque vous la regardez en secouant la tête)
"""
image_name = 'mexico.jpg'
out_name1 = 'out01.jpg'
out_name2 = 'out02.jpg'
out_name3 = 'out03.jpg'
#Chargement des images
Img0 = cv2.imread(image_name,-1)
#Convertir en monochrome
Img0 = cv2.cvtColor(Img0, cv2.COLOR_RGB2GRAY)
#Obtenir la taille de l'image
Height, Width = Img0.shape[:2]
#Taille de la matrice
rows = Height
cols = Width
#Créez un fond blanc pur
whiteImg = np.zeros((rows, cols), np.uint8)
whiteImg.fill(255)
#Synthétisé avec l'original Img0
whiteImg += Img0
#Affichage sur le chemin
cv2.imshow("white back image", whiteImg)
k = cv2.waitKey(0)
if k == 27:
cv2.destroyAllWindows()
elif k == ord('s'):
cv2.imwrite(out_name1,whiteImg)
#Réglage de la luminosité(Correction gamma)
#Valeur gamma(Beaucoup plus grand que d'habitude)
gamma = 19.0
#Tableau pour le look de conversion_up_Faire une table
look_up_table = np.zeros((256, 1), np.uint8)
for i in range(256):
look_up_table[i][0] = 255 * pow(float(i) / 255, 1.0 / gamma)
#Convertir l'image précédente avec LookUpTable
newImg = cv2.LUT(whiteImg, look_up_table)
#Affichage sur le chemin
cv2.imshow("higher brightness image", newImg)
k = cv2.waitKey(0)
if k == 27:
cv2.destroyAllWindows()
elif k == ord('s'):
cv2.imwrite(out_name2,newImg)
#Créez un tableau pour les rayures.
stripe = np.zeros((rows, cols), np.uint8)
#La largeur de la bande est la largeur/160(Règle empirique)
if Width >= 640:
w = Width/160
else:
w = 4
w = int(w)
#0~640 en blanc, 4 chacun
for i in range(0, w):
stripe[0:rows, i:cols:w*2] = 0
#0~64 en noir par 4
for i in range(0, w):
stripe[0:rows, i:cols:w*2] = 1
#Lorsqu'on traite une image comme une matrice, pas comme un produit logique
#Puisqu'il est traité comme une multiplication de nombres, changez-le de 0 à 1.
#Superposition de rayures
newImg *= stripe
#Image à sortir
cv2.imshow('final stripe image', newImg)
#Appuyez sur n'importe quelle touche pour terminer
#Appuyez sur s pour enregistrer
k = cv2.waitKey(0) & 0xFF
if k == 27:
cv2.destroyAllWindows()
elif k == ord('s'):
cv2.imwrite(out_name3,newImg)
#python stripe.Courir avec py
Peux-tu le voir? Je suis mexicain en bonne santé.
S'il y a une partie transparente telle que png, la partie transparente sera noire, il est donc nécessaire de rendre l'arrière-plan blanc. Cette fois, en ajoutant 255 à toutes les valeurs de pixel, la partie avec la luminosité 0 est définie sur 255 (blanc), et les autres parties sont des valeurs obtenues en soustrayant 1 de la valeur de pixel d'origine (par exemple, 1 si la valeur de pixel est 1). J'ai pris la méthode de réglage +255 = 256, c'est-à-dire 0).
La formule de correction gamma est [ici](https://www.blog.umentu.work/python-opencv3%E3%81%A7%E3%82%AC%E3%83%B3%E3%83%9E%E5 Veuillez vérifier avec% A4% 89% E6% 8F% 9Bgamma-conversion-2 /). Puisque la force du signal optique et du signal électrique ne sont pas proportionnels l'un à l'autre, la valeur n'est pas augmentée uniformément, mais une telle correction est effectuée.
De plus, nous présenterons les trois calculs matriciels suivants qui sont pratiques pour le traitement d'image.
-Générer une matrice avec tous les éléments 0
Img = np.zeros((rows, cols), np.uint8)
-Remplir la matrice avec une certaine valeur
Img.fill(255)
-Substituer les valeurs de (row1, col1) à (row2, col2) dans la matrice à w1 intervalles dans le sens de la colonne et w2 intervalles dans le sens de la ligne.
Img[row1:row2:w1, col1:col2:w2] = 0
BlankTar FROM UMENTU IMPORT STUPID documentation opencv v2.1 Opérations sur les tableaux Photos gratuites Irasutoya
Recommended Posts