瀏覽代碼

Add graph for MRF image segmentation

Martin Thoma 9 年之前
父節點
當前提交
5701875ff9

+ 41 - 0
tikz/graph-mrf-image-segmentation/Makefile

@@ -0,0 +1,41 @@
+SOURCE = graph-mrf-image-segmentation
+DELAY = 80
+DENSITY = 300
+WIDTH = 512
+
+make:
+	pdflatex $(SOURCE).tex -output-format=pdf
+	make clean
+
+clean:
+	rm -rf  $(TARGET) *.class *.html *.log *.aux *.data *.gnuplot
+
+gif:
+	pdfcrop $(SOURCE).pdf
+	convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
+	make clean
+
+animatedGif:
+	make
+	pdfcrop $(SOURCE).pdf
+	convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
+	make clean
+
+transparentGif:
+	convert $(SOURCE).pdf -transparent white result.gif
+	make clean
+
+png:
+	make
+	make svg
+	inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
+
+svg:
+	make
+	#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
+	pdf2svg $(SOURCE).pdf $(SOURCE).svg
+	# Necessary, as pdf2svg does not always create valid svgs:
+	inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg
+	rsvg-convert -a -w $(WIDTH) -f svg $(SOURCE).svg -o $(SOURCE)2.svg
+	inkscape $(SOURCE)2.svg --export-plain-svg=$(SOURCE).svg
+	rm $(SOURCE)2.svg

+ 3 - 0
tikz/graph-mrf-image-segmentation/README.md

@@ -0,0 +1,3 @@
+Compiled example
+----------------
+![Example](graph-mrf-image-segmentation.png)

+ 73 - 0
tikz/graph-mrf-image-segmentation/graph-mrf-image-segmentation.tex

@@ -0,0 +1,73 @@
+\documentclass[varwidth=true, border=2pt]{standalone}
+\usepackage{tikz}
+
+\begin{document}
+\tikzstyle{pixel}=[draw,black,circle,minimum size=10pt,inner sep=0pt,fill=red!50]
+\tikzstyle{label}=[draw,black,circle,minimum size=10pt,inner sep=0pt,fill=blue!50]
+\tikzstyle{edge}=[very thick]
+\begin{tikzpicture}[scale=1.7]
+    \node (x1)[pixel] at (0.0,1.15) {$x_1$};
+    \node (x2)[pixel] at (1.0,1.15) {$x_2$};
+    \node (x3)[pixel] at (2.0,1.15) {$x_3$};
+    \node (x4)[pixel] at (0.5,1.65) {$x_4$};
+    \node (x5)[pixel] at (1.5,1.65) {$x_5$};
+    \node (x6)[pixel] at (2.5,1.65) {$x_6$};
+    \node (x7)[pixel] at (1.0,2.15) {$x_7$};
+    \node (x8)[pixel] at (2.0,2.15) {$x_8$};
+    \node (x9)[pixel] at (3.0,2.15) {$x_9$};
+
+    \node (y1)[label] at (0.0,1.5) {$y_1$};
+    \node (y2)[label] at (1.0,1.5) {$y_2$};
+    \node (y3)[label] at (2.0,1.5) {$y_3$};
+    \node (y4)[label] at (0.5,2.0) {$y_4$};
+    \node (y5)[label] at (1.5,2.0) {$y_5$};
+    \node (y6)[label] at (2.5,2.0) {$y_6$};
+    \node (y7)[label] at (1.0,2.5) {$y_7$};
+    \node (y8)[label] at (2.0,2.5) {$y_8$};
+    \node (y9)[label] at (3.0,2.5) {$y_9$};
+
+    \draw[edge] (y1) -- (y2);
+    \draw[edge] (y1) -- (y4);
+    \draw[edge] (y2) -- (y3);
+    \draw[edge] (y2) -- (y5);
+    \draw[edge] (y3) -- (y6);
+    \draw[edge] (y4) -- (y5);
+    \draw[edge] (y4) -- (y7);
+    \draw[edge] (y5) -- (y6);
+    \draw[edge] (y5) -- (y8);
+    \draw[edge] (y6) -- (y9);
+    \draw[edge] (y7) -- (y8);
+    \draw[edge] (y8) -- (y9);
+
+    \draw[edge] (x1) -- (y1);
+    \draw[edge] (x2) -- (y2);
+    \draw[edge] (x3) -- (y3);
+    \draw[edge] (x4) -- (y4);
+    \draw[edge] (x5) -- (y5);
+    \draw[edge] (x6) -- (y6);
+    \draw[edge] (x7) -- (y7);
+    \draw[edge] (x8) -- (y8);
+    \draw[edge] (x9) -- (y9);
+
+    %\draw [dashed] (-0.5,-0.3) -- (2,-0.3) -- (3.5,1.5) -- (0.5,1.5) -- (-0.5,-0.3);
+    \node (x1)[pixel] at (0.0,1.15) {$x_1$};
+    \node (x2)[pixel] at (1.0,1.15) {$x_2$};
+    \node (x3)[pixel] at (2.0,1.15) {$x_3$};
+    \node (x4)[pixel] at (0.5,1.65) {$x_4$};
+    \node (x5)[pixel] at (1.5,1.65) {$x_5$};
+    \node (x6)[pixel] at (2.5,1.65) {$x_6$};
+    \node (x7)[pixel] at (1.0,2.15) {$x_7$};
+    \node (x8)[pixel] at (2.0,2.15) {$x_8$};
+    \node (x9)[pixel] at (3.0,2.15) {$x_9$};
+
+    \node (y1)[label] at (0.0,1.5) {$y_1$};
+    \node (y2)[label] at (1.0,1.5) {$y_2$};
+    \node (y3)[label] at (2.0,1.5) {$y_3$};
+    \node (y4)[label] at (0.5,2.0) {$y_4$};
+    \node (y5)[label] at (1.5,2.0) {$y_5$};
+    \node (y6)[label] at (2.5,2.0) {$y_6$};
+    \node (y7)[label] at (1.0,2.5) {$y_7$};
+    \node (y8)[label] at (2.0,2.5) {$y_8$};
+    \node (y9)[label] at (3.0,2.5) {$y_9$};
+\end{tikzpicture}
+\end{document}