J'ai besoin d'utiliser pyWavelet, c'est-à-dire pywt pour lire mon image pour en faire des ondelettes, l'exemple ci-dessous utilisé pour charger uniquement l'image de la caméra, comment utiliser une autre image de mon chemin d'ordinateur?
import pywt import pywt.data # Load image original = pywt.data.camera()
5 Réponses :
Je ne sais pas si vous pouvez lire une image simplement en utilisant pywt
mais vous pouvez charger une image en utilisant OpenCV, puis la convertir en un format utilisable pour une utilisation avec pywt
import cv2 import numpy as np import pywt image = cv2.imread('1.png') image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # Convert to float for more resolution for use with pywt image = np.float32(image) image /= 255 # ... # Do your processing # ... # Convert back to uint8 OpenCV format image *= 255 image = np.uint8(image) cv2.imshow('image', image) cv2.waitKey(0)
Vous pouvez essayer ce qui suit.
import numpy as np import matplotlib.pyplot as plt import pywt import pywt.data # Load image original = pywt.data.camera() # Wavelet transform of image, and plot approximation and details titles = ['Approximation', ' Horizontal detail', 'Vertical detail', 'Diagonal detail'] coeffs2 = pywt.dwt2(original, 'bior1.3') LL, (LH, HL, HH) = coeffs2 fig = plt.figure(figsize=(12, 3)) for i, a in enumerate([LL, LH, HL, HH]): ax = fig.add_subplot(1, 4, i + 1) ax.imshow(a, interpolation="nearest", cmap=plt.cm.gray) ax.set_title(titles[i], fontsize=10) ax.set_xticks([]) ax.set_yticks([]) fig.tight_layout() plt.show()
Référence: https://pywavelets.readthedocs.io/en/latest/
vous ne répondez pas vraiment à la question posée
Une alternative à OpenCV est scikit-image.
import pywt from skimage import io, color data = io.imread(filename) # Process your image gray = color.rgb2gray(data) coeffs = pywt.dwt2(gray, 'haar') # Or... process each channel separately r, g, b = [c.T for c in data.T] cr = pywt.dwt2(r, 'haar') cg = pywt.dwt2(r, 'haar') cb = pywt.dwt2(r, 'haar') # output: PIL, matplotlib, dump to file...
Vous pouvez utiliser matplotlib et numpy:
from matplotlib.image import imread import numpy as np import pywt A = imread("1.jpg") original = np.mean(A, -1) #rest of your codes
J'ai utilisé des pandas
pour lire l'image, parce que j'ai utilisé le jeu de données hm3.6
pour la prédiction de mouvement et appliqué la transformation en ondelettes comme prétraitement.
Mon code est simplement le suivant;
path = ".../your_path" img = pd.read_csv(path + "h3.6m/dataset/S1/directions_1.txt") #read the image #if you want to apply DWT you can continue with dataframe coeffs2 = dwt(image, 'bior1.3') titles = ['Approximation', ' Horizontal detail', 'Vertical detail', 'Diagonal detail'] LL, LH = coeffs2