Ich habe ein Bilderpaar in den Daten/in/0.png und data/out/0.png Ordner wie die beiden Bilder gegenüber. Ich habe sie programmatisch in Python generiert. src = "https://i.static.net/cxxtk2gy.png"/>
Hier ist der Code, der die Bilder generiert.
import copy
import matplotlib.pyplot as plt
import numpy as np
import random
import scipy
import cv2
def random_spaced_points(n, a = 0.0, b = 1.0, delta = 0.1, rng = None):
if (rng is None):
rng = np.random.default_rng()
if (b - a < (n - 1) * delta):
raise ValueError("Intervalle trop petit pour placer tous les points avec cet espacement.")
base = rng.uniform(a, b - (n - 1) * delta, size=n)
base.sort()
spaced = base + np.arange(n) * delta
return spaced
def drawPolynom(img, p, x0, x1, n = 100):
x = np.linspace(x0, x1, 200)
y = p(x)
coords = list(zip([int(z) for z in x], [int(z) for z in y]))
for i in range(1, len(coords)):
cv2.line(img, coords[i - 1], coords[i], (255, 0, 0), 1)
return img
for i in range(0, 100):
size = (800, 600)
channels = 3 # 3 pour une image couleur (BGR)
img = np.zeros((size[1], size[0], channels), dtype = np.uint8)
n = 4
alpha = 0.25
x = sorted(list(random_spaced_points(n, alpha * size[0], (1 - alpha) * size[0], alpha / 2 * size[0])))
y = list(random_spaced_points(n, alpha * size[1], (1 - alpha) * size[1], alpha / 2 * size[1]))
random.shuffle(y)
p = np.polynomial.Polynomial.fit(x, y, deg = 3)
img1 = copy.deepcopy(img)
drawPolynom(img1, p, x[0], x[-1])
"""
plt.imshow(img1)
#plt.plot(x, y)
mng = plt.get_current_fig_manager()
mng.window.state('zoomed')
plt.show()
"""
cv2.imwrite("data/out/" + str(i) + ".png", cv2.cvtColor(img1, cv2.COLOR_RGB2BGR))
img2 = copy.deepcopy(img)
alpha = 1 / 3
drawPolynom(img2, p, x[0], (1 - alpha) * x[0] + alpha * x[-1])
drawPolynom(img2, p, alpha * x[0] + (1 - alpha) * x[-1], x[-1])
"""
plt.imshow(img2)
mng = plt.get_current_fig_manager()
mng.window.state('zoomed')
plt.show()
"""
cv2.imwrite("data/in/" + str(i) + ".png", cv2.cvtColor(img2, cv2.COLOR_RGB2BGR))
Ich möchte ein neuronales Netzwerk verwenden, um die Bilddaten/in/*zu vervollständigen. Hier ist der Code, den er vorgeschlagen hat, aber es funktioniert nicht. < /P>
Ich habe ein Bilderpaar in den Daten/in/0.png und data/out/0.png Ordner wie die beiden Bilder gegenüber. Ich habe sie programmatisch in Python generiert. src = "https://i.static.net/cxxtk2gy.png"/> Hier ist der Code, der die Bilder generiert. [code]import copy import matplotlib.pyplot as plt import numpy as np import random import scipy import cv2
def random_spaced_points(n, a = 0.0, b = 1.0, delta = 0.1, rng = None): if (rng is None): rng = np.random.default_rng()
if (b - a < (n - 1) * delta): raise ValueError("Intervalle trop petit pour placer tous les points avec cet espacement.")
base = rng.uniform(a, b - (n - 1) * delta, size=n) base.sort()
spaced = base + np.arange(n) * delta
return spaced
def drawPolynom(img, p, x0, x1, n = 100): x = np.linspace(x0, x1, 200) y = p(x)
coords = list(zip([int(z) for z in x], [int(z) for z in y]))
for i in range(1, len(coords)): cv2.line(img, coords[i - 1], coords[i], (255, 0, 0), 1)
return img
for i in range(0, 100): size = (800, 600)
channels = 3 # 3 pour une image couleur (BGR) img = np.zeros((size[1], size[0], channels), dtype = np.uint8)
""" plt.imshow(img2) mng = plt.get_current_fig_manager() mng.window.state('zoomed') plt.show() """ cv2.imwrite("data/in/" + str(i) + ".png", cv2.cvtColor(img2, cv2.COLOR_RGB2BGR)) [/code] Ich möchte ein neuronales Netzwerk verwenden, um die Bilddaten/in/*zu vervollständigen. Hier ist der Code, den er vorgeschlagen hat, aber es funktioniert nicht. < /P> [code]import torch from torch.utils.data import Dataset, DataLoader from torchvision import transforms from PIL import Image import glob
# suppose que tu as ./data/in et ./data/out train_dataset = CurveDataset("data/in", "data/out", transform=transform) train_loader = DataLoader(train_dataset, batch_size=8, shuffle=True)
model = UNet().to(device) criterion = nn.MSELoss() optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
for epoch in range(5): for img_in, img_out in train_loader: img_in, img_out = img_in.to(device), img_out.to(device) pred = model(img_in) loss = criterion(pred, img_out)
optimizer.zero_grad() loss.backward() optimizer.step() print(f"Epoch {epoch+1}, loss={loss.item():.4f}") import matplotlib.pyplot as plt
img_in, img_out = train_dataset[0] with torch.no_grad(): pred = model(img_in.unsqueeze(0).to(device)).cpu().squeeze()
plt.subplot(1,3,1); plt.imshow(img_in.squeeze(), cmap="gray"); plt.title("Input") plt.subplot(1,3,2); plt.imshow(pred, cmap="gray"); plt.title("Predicted") plt.subplot(1,3,3); plt.imshow(img_out.squeeze(), cmap="gray"); plt.title("Target") plt.show() [/code] Ich frage mich, ob ein solches Projekt in Python mit maschinellem Lernen möglich ist und wenn ja, wie?
Ich möchte einen Algorithmus zur Berechnung einer ungefähren Kurve schreiben (oder idealerweise finden). (x_0, y_0) Endpunkt (x_n, y_n) und eine Liste von Entfernungen und Winkeln [(a_0, 0), (a_1,...
Ich habe einen großen Datensatz von 400,00 Datensätzen in einer MySQL -Datenbank, auf die eine Java -API zu einem Hibernate -Repo zugegriffen wird. Es gibt eine automatische Komponente in der...
Ich habe einen großen Datensatz mit 400.000 Datensätzen in einer MySQL -Datenbank, auf die eine Java -API zu einem Hibernate -Repo zugegriffen wird. Es gibt eine automatische Komponente in der...
Ich versuche, ein Zeilendiagramm zu erstellen, in dem die durchschnittliche Zeit für die Vervollständigung von Dauern erfasst wird, die nach Monat gruppiert sind. Auf der y-Achse muss ich die zu...
in der Zeile 38 Daten ; Ich erhalte den folgenden Fehler Syntaxfehler, einfügte Zuweisungsoperatorxpression , um den Ausdruck zu vervollständigen. Kann jemand dazu beitragen, dies zu lösen. package...