Skip to content

Commit 703ae87

Browse files
Specialcase creating Image with another Image
1 parent 2d8b0f4 commit 703ae87

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

deeptrack/image.py

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,13 @@ class Image:
112112
def __init__(self, value, copy=True):
113113
super().__init__()
114114

115-
if isinstance(value, Image):
116-
value = value._value
117115
if copy:
118116
self._value = self._view(value)
119117
else:
120-
self._value = value
118+
if isinstance(value, Image):
119+
self._value = value._value
120+
else:
121+
self._value = value
121122

122123
if isinstance(value, Image):
123124
self.properties = list(value.properties)
@@ -249,15 +250,15 @@ def __array_ufunc__(self, ufunc, method, *inputs, **kwargs):
249250

250251
outputs = []
251252
for result in results:
252-
out = Image(result)
253+
out = Image(result, copy=False)
253254
out.merge_properties_from(inputs)
254255
outputs.append(out)
255256

256257
return tuple(outputs)
257258
elif method == "at":
258259
return None
259260
else:
260-
result = Image(results)
261+
result = Image(results, copy=False)
261262
result.merge_properties_from(inputs)
262263
return result
263264

@@ -288,7 +289,7 @@ def __array_function__(self, func, types, args, kwargs):
288289
if isinstance(out, (bool, int, float)):
289290
return out
290291

291-
out = Image(out)
292+
out = Image(out, copy=False)
292293
for inp in args:
293294
if isinstance(inp, Image):
294295
out.merge_properties_from(inp)
@@ -302,28 +303,32 @@ def __array__(self, *args, **kwargs):
302303
def to_tf(self):
303304

304305
if isinstance(self._value, np.ndarray):
305-
return Image(tensorflow.constant(self._value)).merge_properties_from(self)
306+
return Image(
307+
tensorflow.constant(self._value), copy=False
308+
).merge_properties_from(self)
306309

307310
if isinstance(self._value, cupy.ndarray):
308-
return Image(tensorflow.constant(self._value.get())).merge_properties_from(
309-
self
310-
)
311+
return Image(
312+
tensorflow.constant(self._value.get()), copy=False
313+
).merge_properties_from(self)
311314

312315
return self
313316

314317
def to_cupy(self):
315318

316319
if isinstance(self._value, np.ndarray):
317-
return Image(cupy.array(self._value)).merge_properties_from(self)
320+
return Image(cupy.array(self._value), copy=False).merge_properties_from(
321+
self
322+
)
318323

319324
return self
320325

321326
def to_numpy(self):
322327

323328
if isinstance(self._value, cupy.ndarray):
324-
return Image(self._value.get()).merge_properties_from(self)
329+
return Image(self._value.get(), copy=False).merge_properties_from(self)
325330
if isinstance(self._value, tensorflow.Tensor):
326-
return Image(self._value.numpy()).merge_properties_from(self)
331+
return Image(self._value.numpy(), copy=False).merge_properties_from(self)
327332

328333
return self
329334

@@ -332,7 +337,7 @@ def __getattr__(self, key):
332337

333338
def __getitem__(self, idx):
334339
idx = strip(idx)
335-
out = Image(self._value.__getitem__(idx))
340+
out = Image(self._value.__getitem__(idx), copy=False)
336341
out.merge_properties_from([self, idx])
337342
return out
338343

0 commit comments

Comments
 (0)