added documentation
This commit is contained in:
parent
3c8f14f34b
commit
57c594cf4d
14
Makefile
14
Makefile
|
@ -13,15 +13,13 @@ PACKAGE_FILE_PATH=$(shell pwd)/lipase-$(LIPASE_VERSION).zip
|
|||
.PHONY: all
|
||||
all: test doc
|
||||
|
||||
.PHONY:
|
||||
doc: doc/lipase.pdf
|
||||
.PHONY: doc
|
||||
doc:
|
||||
cd doc; make
|
||||
|
||||
doc/lipase.pdf: doc/lipase.tex
|
||||
cd doc; latexmk
|
||||
|
||||
.PHONY:
|
||||
.PHONY: clean_doc
|
||||
clean_doc:
|
||||
cd doc; rm lipase.pdf lipase.aux lipase.fls lipase.log lipase.fdb_latexmk lipase.dvi;
|
||||
cd doc; make clean
|
||||
|
||||
|
||||
$(BUILD_ROOT_PATH)/jars/Lib/fr.univ-rennes1.ipr.lipase.lib.jar: $(LIB_SRC_FILES)
|
||||
|
@ -32,7 +30,7 @@ $(BUILD_ROOT_PATH)/jars/Lib/fr.univ-rennes1.ipr.lipase.lib.jar: $(LIB_SRC_FILES)
|
|||
popd
|
||||
|
||||
.PHONY: install_ij_opencv
|
||||
install_ij_opencv:
|
||||
install_ij_opencv:
|
||||
# enable IJ-OpenCV-plugins site because it's disabled by default
|
||||
|
||||
# graffy@graffy-ws2:~$ zcat /home/graffy/soft/Fiji.app/db.xml.gz | grep IJ-Op | grep -v "jar" | grep -v "<plu"
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
RAW_IMAGES_ROOT?=/home/graffy/work/lipase/raw-images
|
||||
lipase.pdf: lipase.tex graphics
|
||||
pdflatex lipase.tex
|
||||
|
||||
# command used to convert traps sequences in the visible into png with maximum contrast
|
||||
TRAPS_VISIBLE_CONVERTER=convert -contrast-stretch 2%x1% -resize 25%
|
||||
|
||||
GENERATED_GRAPHICS=\
|
||||
graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000000_DM300_nofilter_vis_000.png \
|
||||
graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000019_DM300_nofilter_vis_000.png \
|
||||
graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000039_DM300_nofilter_vis_000.png
|
||||
|
||||
.PHONY: graphics
|
||||
graphics: $(GENERATED_GRAPHICS)
|
||||
|
||||
graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000000_DM300_nofilter_vis_000.png : $(RAW_IMAGES_ROOT)/res_soleil2018/GGH/GGH_2018_cin2_phiG_I_327_vis_-40_1/Pos0/img_000000000_DM300_nofilter_vis_000.tif
|
||||
$(TRAPS_VISIBLE_CONVERTER) "$<" "$@"
|
||||
|
||||
graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000019_DM300_nofilter_vis_000.png : $(RAW_IMAGES_ROOT)/res_soleil2018/GGH/GGH_2018_cin2_phiG_I_327_vis_-40_1/Pos0/img_000000019_DM300_nofilter_vis_000.tif
|
||||
$(TRAPS_VISIBLE_CONVERTER) "$<" "$@"
|
||||
|
||||
|
||||
graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000039_DM300_nofilter_vis_000.png : $(RAW_IMAGES_ROOT)/res_soleil2018/GGH/GGH_2018_cin2_phiG_I_327_vis_-40_1/Pos0/img_000000039_DM300_nofilter_vis_000.tif
|
||||
$(TRAPS_VISIBLE_CONVERTER) "$<" "$@"
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -f $(GENERATED_GRAPHICS)
|
||||
rm -f lipase.pdf lipase.aux lipase.fls lipase.log lipase.fdb_latexmk lipase.dvi;
|
|
@ -0,0 +1 @@
|
|||
the purpose of this file is to make sure the empty graphics directory can be part of the git repository (workaround to the fact that git doesn't version empty directories)
|
|
@ -1,14 +1,26 @@
|
|||
\documentclass[a4paper]{article}
|
||||
\documentclass[a4paper, 10pt]{article}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{subcaption}
|
||||
\usepackage[htt]{hyphenat} % allow hyphen inside texttt to avoid overfull hbox warnings
|
||||
\usepackage[english, french]{babel}
|
||||
\usepackage[margin=0.5in]{geometry} % default margins are too big for my taste: too much wasted space http://kb.mit.edu/confluence/pages/viewpage.action?pageId=3907057
|
||||
\usepackage{amsmath} % provides underset
|
||||
|
||||
\hyphenation{tu-yau}
|
||||
|
||||
|
||||
\title{lipase}
|
||||
\author{Guillaume Raffy \and Véronique Vié }
|
||||
\begin{document}
|
||||
\selectlanguage{english}
|
||||
|
||||
\maketitle
|
||||
|
||||
\section{catalog images}
|
||||
|
||||
image prefix :
|
||||
\selectlanguage{french}
|
||||
\begin{description}
|
||||
\item[AF]
|
||||
\item[blé] coupes de blé
|
||||
|
@ -45,5 +57,46 @@
|
|||
\item[cin2] autre échantillon similaire à cin1
|
||||
\item[cond5678] condition non réalistes
|
||||
\end{description}
|
||||
\selectlanguage{english}
|
||||
|
||||
\section{computing background image for trap sequences}
|
||||
|
||||
Trap sequences show traps at fixed positions with particles that move over time, as shown in figure \ref{fig:trap_sequence1}. In order to detect the particles, we can subtract from each image a background image, which is an image of the scene without any particle.
|
||||
|
||||
If we suppose that particles are moving fast enough, we can estimate this background image $B$, as :
|
||||
|
||||
\begin{equation}
|
||||
B(x,y) = \underset{t\in {1 \ldots T_{max}}}{\mathrm{median}} \{I(x,y,t)\}
|
||||
\end{equation}
|
||||
where $I(x,y,t)$ is the value of the input sequence at time $t$ and on pixel position $(x,y)$ and $T_{max}$ is the number of frames in the sequence.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\begin{subfigure}[b]{0.3\textwidth}
|
||||
\includegraphics[width=1.0\textwidth]{graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000000_DM300_nofilter_vis_000.png}
|
||||
%\includegraphics[width=\textwidth]{1.png}
|
||||
\caption{Frame 0}
|
||||
%\label{fig:1}
|
||||
\end{subfigure}
|
||||
~
|
||||
\begin{subfigure}[b]{0.3\textwidth}
|
||||
\includegraphics[width=1.0\textwidth]{graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000019_DM300_nofilter_vis_000.png}
|
||||
%\includegraphics[width=\textwidth]{1.png}
|
||||
\caption{Frame 19}
|
||||
%\label{fig:1}
|
||||
\end{subfigure}
|
||||
~
|
||||
\begin{subfigure}[b]{0.3\textwidth}
|
||||
\includegraphics[width=1.0\textwidth]{graphics/res_soleil2018_GGH_GGH_2018_cin2_phiG_I_327_vis_-40_1_Pos0_img_000000039_DM300_nofilter_vis_000.png}
|
||||
%\includegraphics[width=\textwidth]{1.png}
|
||||
\caption{Frame 39}
|
||||
%\label{fig:1}
|
||||
\end{subfigure}
|
||||
|
||||
|
||||
\caption{Example of trap sequence (\texttt{res\_soleil2018/GGH/GGH\_2018\_cin2\_phiG\_I\_327\_vis\_-40\_1/Pos0})}
|
||||
\label{fig:trap_sequence1}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\end{document}
|
|
@ -0,0 +1,19 @@
|
|||
## 12/03/2020
|
||||
|
||||
- graffy : investigations on how to compute white for sequences containing traps:
|
||||
- `telemos.WhiteEstimator` is not suitable for a sequence containing traps, as the resulting white image displays. `telemos.WhiteEstimator` is expecting the input images to only contain small particles.
|
||||
- supposing that particles move in the sequences containing trap, the white image can be computed by
|
||||
|
||||
|
||||
## 17/03/2020
|
||||
|
||||
- graffy
|
||||
- I made some manual tests for extracting background of `res_soleil2018/GGH/GGH_2018_cin2_phiG_I_327_vis_-40_1/Pos0`. For this sequence, the median image provides a worse background image than the last frame of the sequence, which contains nearly no particle. So for now we'll use the last frame as a background for the moment, but we have to find a better background estimator than just the median image (an idea is for example to keep for each pixel the value that is the most frequent in the sequence)
|
||||
- Some manual tests on the sequence `res_soleil2018/GGH/GGH_2018_cin2_phiG_I_327_vis_-40_1/Pos0` showed that subtracting the background image makes particles more obviusly visible, as expected. Applying a threshold allows to isolate the particles, but estimating the surface ofd particles from that will be tricky, as only the border of particles have a value which is very different from the background. Of course a fill hole operator could fill rthe particles but this can be fragile as the borders of particles are not always clearly visible on all its surrounding.
|
||||
- a more promising solution for detecting particles would be to compute for each pixel :
|
||||
- the radial profile around the pixel
|
||||
- the radial variance profile around the pixel
|
||||
then, particle are the pixels for which
|
||||
- the radial variance is low (this means that there's a radial symmetry around the pixel)
|
||||
- and the radial profile shows a peak. The position of the peak gives the radius of the particle
|
||||
- In order to efficiently compute these radial profile and radial variance profiles on a whole image, convolutions methods can provide dramatic speedups. This technique has already been used in https://subversion.ipr.univ-rennes1.fr/repos/main/projects/antipode (`texori.py`). Unfortunately, I can't reuse this code as it makes extensive used of `numpy` (and imagej's jython doesn't support `numpy`)
|
Loading…
Reference in New Issue