Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -42,21 +42,24 @@ def poisson_blend(img_s, mask, img_t):
|
|
| 42 |
x_n = np.clip(np.stack([xs, xs, xs-1, xs+1]), 0, img_s_w-1)
|
| 43 |
|
| 44 |
# Compute differences
|
| 45 |
-
d = img_s[ys, xs][:, np.newaxis] - img_s[y_n, x_n]
|
| 46 |
|
| 47 |
# Construct sparse matrix A and vector b
|
| 48 |
-
rows = np.
|
| 49 |
-
cols = np.
|
| 50 |
-
data = np.
|
| 51 |
-
|
| 52 |
-
mask_n = (im2var[y_n, x_n] != -1).ravel()
|
| 53 |
-
rows = rows[mask_n]
|
| 54 |
-
cols = cols[mask_n]
|
| 55 |
-
data = data[mask_n]
|
| 56 |
|
| 57 |
A = sp.sparse.csr_matrix((data, (rows, cols)), shape=(4*nnz, nnz))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
b = d.ravel()
|
| 59 |
-
b[~mask_n] += img_t[y_n, x_n]
|
| 60 |
|
| 61 |
# Solve the system
|
| 62 |
v = sp.sparse.linalg.lsqr(A, b)[0]
|
|
|
|
| 42 |
x_n = np.clip(np.stack([xs, xs, xs-1, xs+1]), 0, img_s_w-1)
|
| 43 |
|
| 44 |
# Compute differences
|
| 45 |
+
d = img_s[ys, xs][:, np.newaxis] - img_s[y_n.T, x_n.T].T
|
| 46 |
|
| 47 |
# Construct sparse matrix A and vector b
|
| 48 |
+
rows = np.arange(4*nnz)
|
| 49 |
+
cols = np.repeat(im2var[ys, xs], 4)
|
| 50 |
+
data = np.ones(4*nnz)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
|
| 52 |
A = sp.sparse.csr_matrix((data, (rows, cols)), shape=(4*nnz, nnz))
|
| 53 |
+
|
| 54 |
+
mask_n = (im2var[y_n, x_n] != -1)
|
| 55 |
+
cols_n = im2var[y_n, x_n][mask_n]
|
| 56 |
+
rows_n = np.arange(4*nnz)[mask_n.ravel()]
|
| 57 |
+
data_n = -np.ones(cols_n.size)
|
| 58 |
+
|
| 59 |
+
A += sp.sparse.csr_matrix((data_n, (rows_n, cols_n)), shape=(4*nnz, nnz))
|
| 60 |
+
|
| 61 |
b = d.ravel()
|
| 62 |
+
b[~mask_n.ravel()] += img_t[y_n, x_n][~mask_n]
|
| 63 |
|
| 64 |
# Solve the system
|
| 65 |
v = sp.sparse.linalg.lsqr(A, b)[0]
|