From 358b061ade650c5db05232439c659ec0acd47cc0 Mon Sep 17 00:00:00 2001 From: Victor Erukhimov Date: Tue, 11 Jan 2011 20:51:08 +0000 Subject: [PATCH] OpenCV user guide prototype --- doc/goman | 6 +++ doc/opencv_guide_body.tex | 5 ++ doc/opencv_user.pdf | Bin 0 -> 49853 bytes doc/opencv_user.tex | 107 ++++++++++++++++++++++++++++++++++++++ doc/user_mat.tex | 43 +++++++++++++++ 5 files changed, 161 insertions(+) create mode 100644 doc/goman create mode 100644 doc/opencv_guide_body.tex create mode 100644 doc/opencv_user.pdf create mode 100644 doc/opencv_user.tex create mode 100644 doc/user_mat.tex diff --git a/doc/goman b/doc/goman new file mode 100644 index 0000000000..de86424e6e --- /dev/null +++ b/doc/goman @@ -0,0 +1,6 @@ +(pdflatex '\newcommand{\genc}{true}\newcommand{\genpy}{true}\newcommand{\targetlang}{c}\input{opencv_user.tex}' && +# bibtex opencv_user && +# makeindex opencv_user && + pdflatex '\newcommand{\genc}{true}\newcommand{\genpy}{true}\newcommand{\targetlang}{c}\input{opencv_user.tex}' > 1 + ) || exit 1 +#gv -page=480 opencv_user.pdf diff --git a/doc/opencv_guide_body.tex b/doc/opencv_guide_body.tex new file mode 100644 index 0000000000..52eeae3013 --- /dev/null +++ b/doc/opencv_guide_body.tex @@ -0,0 +1,5 @@ + +\chapter{cv::Mat. Basic operations with images.} +\renewcommand{\curModule}{Working with images.} +\input{user_mat} + diff --git a/doc/opencv_user.pdf b/doc/opencv_user.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1b72ddad533f657fa3eceff70b064440c1491867 GIT binary patch literal 49853 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 literal 0 HcmV?d00001 diff --git a/doc/opencv_user.tex b/doc/opencv_user.tex new file mode 100644 index 0000000000..d0aad83d8b --- /dev/null +++ b/doc/opencv_user.tex @@ -0,0 +1,107 @@ +\documentclass[11pt]{book} + +\usepackage{cite} +\usepackage[pdftex]{graphicx} +\usepackage{titlesec} +\usepackage{listings} +\usepackage{fancyvrb} +\usepackage[svgnames]{xcolor} +\usepackage{framed} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{bbm} +\usepackage{hyperref} +\usepackage{makeidx} +\usepackage{color} +\usepackage{verbatim} + +\setcounter{secnumdepth}{1} + +\definecolor{shadecolor}{gray}{0.95} % Background color of title bars +\lstset{ +language=C, +basicstyle=\small\ttfamily, +backgroundcolor=\color{shadecolor} +} + +\definecolor{cvlinkcolor}{rgb}{0.0 0.3 0.8} + +% taken from http://en.wikibooks.org/wiki/LaTeX/Hyperlinks +\hypersetup{ + bookmarks=true, % show bookmarks bar? + unicode=false, % non-Latin characters in Acrobat’s bookmarks + %pdftoolbar=true, % show Acrobat’s toolbar? + %pdfmenubar=true, % show Acrobat’s menu? + %pdffitwindow=false, % window fit to page when opened + %pdfstartview={FitH}, % fits the width of the page to the window + %pdftitle={My title}, % title + %pdfauthor={Author}, % author + %pdfsubject={Subject}, % subject of the document + %pdfcreator={Creator}, % creator of the document + %pdfproducer={Producer}, % producer of the document + %pdfkeywords={keywords}, % list of keywords + %pdfnewwindow=true, % links in new window + colorlinks=true, % false: boxed links; true: colored links + linkcolor=cvlinkcolor, % color of internal links + citecolor=cvlinkcolor, % color of links to bibliography + filecolor=magenta, % color of file links + urlcolor=cyan % color of external links +} + +\makeindex + +\newcommand{\piRsquare}{\pi r^2} % This is my own macro !!! + +\usepackage{helvetica} +\usepackage{ifthen} +\usepackage{alltt} +\usepackage{opencv} + +%%% Margins %%% +\oddsidemargin 0.0in +\evensidemargin 0.0in +\textwidth 6.5in +%\headheight 1.0in +%\topmargin 0.5in +%\textheight 9.0in +%\footheight 1.0in +%%%%%%%%%%%%%%% + +\title{OpenCV User Guide} % used by \maketitle +\author{v2.2} % used by \maketitle +\date{December, 2010} % used by \maketitle + +\begin{document} +\maketitle % automatic title! + +\setcounter{tocdepth}{8} +\tableofcontents + +\titleformat{\subsection} +{\titlerule +\vspace{.8ex}% +\normalfont\bfseries\Large} +{\thesection.}{.5em}{} + +%%% Define these to get rid of warnings +\def\genc{true} +\def\genpy{true} +\def\gencpp{true} + +\newif\ifC +\newif\ifPy +\newif\ifCpp +\newif\ifCPy + +\Cfalse +\Cpptrue +\Pyfalse +\CPyfalse +\def\targetlang{cpp} +\part{C++ API Reference} +\input{opencv_guide_body} + +\addcontentsline{toc}{part}{Index} +\printindex + +\end{document} % End of document. diff --git a/doc/user_mat.tex b/doc/user_mat.tex new file mode 100644 index 0000000000..731e7b0a47 --- /dev/null +++ b/doc/user_mat.tex @@ -0,0 +1,43 @@ +\section{Basic operations with images} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% C++ % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifCpp +\subsection{Input/Output} +Load an image from a file: +\begin{lstlisting} +Mat img = imread(filename); +\end{lstlisting} + +If you read a jpg file, a 3 channel image is created by default. If you need a grayscale image, use: +\begin{lstlisting} +Mat img = imread(filename, 0); +\end{lstlisting} + +Save an image to a file: +\begin{lstlisting} +Mat img = imwrite(filename); +\end{lstlisting} + +\subsection{Accessing pixel intensity values} + +In order to get pixel intensity value, you have to know the type of an image and the number of channels. Here is an example for a single channel grey scale image (type 8UC1) and pixel coordinates x and y: +\begin{lstlisting} +Scalar intensity = img.at(x, y); +\end{lstlisting} +\texttt{intensity.val[0]} contains a value from 0 to 255. + +Now let us consider a 3 channel image with \texttt{bgr} color ordering (the default format returned by imread): +\begin{lstlisting} +Scalar intensity = img.at(x, y); +uchar blue = intensity.val[0]; +uchar green = intensity.val[1]; +uchar red = intensity.val[2]; +\end{lstlisting} +\fi + +