Halte es kurz und einfach#
Python verfügt über erstaunliche Funktionalitäten, die es uns ermöglichen, Code des 21. Jahrhunderts zu schreiben. Zum Beispiel können wir Funktionen und Parameter in Listen sammeln und sie dann aus einer Schleife heraus aufrufen. Während dies aus programmiertechnischer Sicht super cool ist, könnte es schwierig sein, den Code zu lesen. Die Empfehlung lautet: Keep it short and simple (KISS).
import numpy as np
from skimage.io import imread, imshow
from napari_segment_blobs_and_things_with_membranes import threshold_otsu, gaussian_blur, label
Übung#
Als Beispiel gibt es unten zwei Codeabschnitte. Ohne den Code auszuführen - glauben Sie, dass beide dasselbe tun?
image = imread("../../data/blobs.tif")
# define a list of functions and a corresponding list of arguments
functions = [gaussian_blur, threshold_otsu, label]
argument_lists = [[.5], [], []]
# go through functions and argument lists pair-wise
for function, argument_list in zip(functions, argument_lists):
# execute function with given arguments
image = function(image, *argument_list)
result1 = image
imshow(result1)
image = imread("../../data/blobs.tif")
blurred = gaussian_blur(image, 5)
binary = threshold_otsu(blurred)
labels = label(binary)
result2 = labels
imshow(result2)
Wenn Sie sich nicht sicher sind, können Sie auch direkt überprüfen, ob die Ergebnisse gleich sind:
np.all(result1 == result2)