Dosisanpassung
Nun gibt es Omeprazolkapseln, die man öffnen darf, weil die darin enthaltenen Wirkstoffkügelchen (nein keine Globuli, sondern richtige Medizin) selbst einen säurefesten Überzug haben. Das ist v.a. für Kinder gedacht, die die Kapseln nicht nehmen wollen. Denen mischt man das dann in Apfelmus oder so. Sollte doch auch bei Katzen gehen, nur eben mit Hühnermus statt Apfelmus ;-)Aber wieviele Kügelchen braucht er? Simpel: eine Kapsel enthält 20mg Omeprazol. Die korrekte Dosierung ist 1mg Omeprazol pro kg Körpergewicht. Der Kater wiegt momentan 2.4kg. Also braucht er 2.4mg. Aber wievielen Kügelchen entspricht das? Na das ist doch einfach - ich muss ja nur die 20mg durch die Anzahl der Kügelchen pro Kapsel teilen und schon weiß ich wieviel Wirkstoff ein Kügelchen enthält. Gesagt getan. Kapsel aufmachen und Inhalt ausschütten:
Hm – das sind aber viele!
Um ein zuverlässiges Bild zu erhalten sollte man zudem eine Handvoll Kapseln öffnen und auszählen. Hab ich Lust diese Sisyphosarbeit zu machen? Nö. Und wie man von Larry Wall weiß, sind die drei Tugenden des Programmierers Faulheit, Ungeduld und Hybris. In diesem Fall also Faulheit – also die Eigenschaft die einen dazu antreibt, Programme zu schreiben, die einem die Arbeit abnehmen.
Bildanalyse
Statt selber zählen lieber zählen lassen! Also Kapsel aufmachen und den Inhalt auf schwarzen Karton entleeren (s.o.), Foto schießen, nächste Kapsel. Sechs Kapseln habe ich so dokumentiert. Das sollte reichen um ausreichend genau zu sein.Nun erstmal den Kontrast anheben, damit das Kügelchenzählen einfacher wird. Dazu habe ich imagemagick verwendet:
convert -threshold 30% pic1.jpg pic1-hicontrast.jpg
Das sieht dann so aus:
Zum Zählen habe ich ein kleines Python Skript geschrieben, das das scikit-image Modul verwendet und das geht so:
from skimage import data, io, color, feature
image = io.imread(imagename)
image_gray = color.rgb2gray(image)
blobs = feature.blob_dog(image_gray, min_sigma=5, max_sigma=10, threshold=.5)
print len(blobs[:,2])
Im Wesentlichen ist der Code aus der Doku für die Feature detection geklaut. Im echten Skript ist dann auch noch ein bisschen Code drin, der das Bild mit Markierungen der detektierten Features überlagert, damit man das Ergebniss visuell kontrollieren kann. Das habe ich genutzt, um per trial and error die besten Werte für min_sigma und max_sigma zu finden:
Das Bild ist in Falschfarben: Blau ist der Hintergrund, rot die hellen Bildelemente und die grünen Kringel markieren detektierte Features. Passt hier schon perfekt.
Nach ein klein wenig herumprobieren lief es problemlos und hat die folgenden Counts geliefert;
Kapsel 1: 230
Kapsel 2: 233
Kapsel 3: 234
Kapsel 4: 243
Kapsel 5: 236
Kapsel 6: 244
Im Mittel also 236.6 Kügelchen pro Kapsel. Also enthält jedes Kügelchen 20mg/236.6 = 0.085mg. Der Kater braucht also 2.4 / 0.085 = 28 Kügelchen am Tag. Jetzt muss ich nur noch einen automatischen Kügelchensortierer konstruieren...
Der Kater ist nun sehr zufrieden...
... und widmet sich intensiv seinen Hobbies:
Mei süss :-). Echt eine liebe Katze. Leider bin ich allergisch... Ist eine super coole Anwendung von computer vision und zeigt wieder mal, dass es in Python (fast) nichts gibt was es nicht gibt ;-). Es gibt ja z.B. auch komplette Bindings für OpenCV und für ROS. Auch am Raspberry Pi ist Python ja fast nativ.
AntwortenLöschen