--- a
+++ b/4x/reference/giftest.py
@@ -0,0 +1,112 @@
+import os
+
+import numpy as np
+
+from scipy.ndimage import maximum_filter, minimum_filter, binary_fill_holes
+
+import skimage as ski
+from skimage import io, filter, color, exposure, morphology, feature, draw, measure, transform
+
+#figsize(16, 10)
+
+l = os.listdir("../data")
+for f in l :
+	if not f.endswith(".jpg") :
+		l.remove(f)
+
+
+qstain = np.array([[.26451728, .5205347, .81183386], [.9199094, .29797825, .25489032], [.28947765, .80015373, .5253158]])
+
+
+
+
+for im in l :
+
+	print im
+
+	A = transform.rescale(io.imread("../data/" + im), 0.25)
+
+	deconv = ski.img_as_float(color.separate_stains(A, np.linalg.inv(qstain)))
+
+
+
+
+
+
+	subveins1 = \
+	morphology.remove_small_objects(
+		filter.threshold_adaptive(
+			filter.gaussian_filter(
+				deconv[:, :, 2] / deconv[:, :, 0],
+				11),
+			250, offset = -0.13),
+		60)
+
+	subveins2 = \
+	morphology.remove_small_objects(
+		filter.threshold_adaptive(
+			filter.gaussian_filter(
+					maximum_filter(
+					deconv[:, :, 2] / deconv[:, :, 0],
+					5),
+				11),
+			250, offset = -0.13),
+		60)
+
+	veins = \
+	maximum_filter(
+		morphology.remove_small_objects(
+		    binary_fill_holes(
+		        morphology.binary_closing(
+		            np.logical_or(subveins1, subveins2),
+		            morphology.disk(25)),
+		        ),
+		    250),
+		27)
+
+
+
+
+
+	
+	inflammation = \
+	maximum_filter(
+	    morphology.remove_small_objects(
+	        filter.threshold_adaptive(
+	            exposure.adjust_sigmoid(
+		            filter.gaussian_filter(
+		                exposure.equalize_adapthist(
+		                    exposure.rescale_intensity(
+		                        deconv[:, :, 1],
+		                        out_range = (0, 1)),
+		                    ntiles_y = 1),
+		                    5),
+		            cutoff = 0.6),
+		            75, offset = -0.12),
+		    250),
+		29)
+
+
+
+
+
+
+
+	# Labelled
+	total = np.zeros_like(A)
+	#total[:, :, 0] = blood
+	total[:, :, 1] = veins
+	total[:, :, 2] = inflammation
+
+
+
+
+
+
+
+	io.imsave("__1.gif", A)
+	io.imsave("__2.gif", total)
+
+	os.system("gifsicle --delay=80 --loop __*.gif > %s.gif" % im)
+
+	
\ No newline at end of file