From 8710c8d6690fdc2256d9f9faf7949948e1881826 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Wed, 9 Jun 2010 18:17:24 +0000 Subject: [PATCH] fixed code samples --- doc/opencv_cheatsheet.pdf | Bin 149795 -> 149781 bytes doc/opencv_cheatsheet.tex | 26 +++++++++++--------------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/doc/opencv_cheatsheet.pdf b/doc/opencv_cheatsheet.pdf index 860e41deae71af7463c1aa54abb14cd79641f1b8..53c3378c60bb1c9f5c2bfc5dac28390883d312c5 100644 GIT binary patch delta 16034 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 delta 16031 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 Y&aR%$7SD)K$D@W1B2G?OH94aH2VuIn7ytkO diff --git a/doc/opencv_cheatsheet.tex b/doc/opencv_cheatsheet.tex index 8899804a61..53828f22ea 100644 --- a/doc/opencv_cheatsheet.tex +++ b/doc/opencv_cheatsheet.tex @@ -183,7 +183,7 @@ \textbf{Create a matrix initialized with specified values}\\ \> \texttt{double a = CV\_PI/3;} \\ -\> \texttt{Mat A22 = Mat(Mat\_(2, 2) <<} \\ +\> \texttt{Mat A22 = (Mat\_(2, 2) <<} \\ \> \> \texttt{cos(a), -sin(a), sin(a), cos(a));} \\ \> \texttt{float B22data[] = \{cos(a), -sin(a), sin(a), cos(a)\};} \\ \> \texttt{Mat B22 = Mat(2, 2, CV\_32F, B22data).clone();}\\ @@ -199,7 +199,7 @@ \> \texttt{Mat I(480, 640, CV\_32FC3, Idata);}\\ \> \texttt{vector iptvec(10);}\\ \> \texttt{Mat iP(iptvec); }\textit{// iP -- 10x1 CV\_32SC2 matrix}\\ -\> \texttt{CvMat* oldC0 = cvCreateImage(cvSize(320, 240), 16);}\\ +\> \texttt{IplImage* oldC0 = cvCreateImage(cvSize(320,240),16,1);}\\ \> \texttt{Mat newC = cvarrToMat(oldC0);}\\ \> \texttt{IplImage oldC1 = newC; CvMat oldC2 = newC;}\\ @@ -263,7 +263,7 @@ \begin{tabbing} Exa\=mple 1. Smooth image ROI in-place\\ \>\texttt{Mat imgroi = image(Rect(10, 20, 100, 100));}\\ -\>\texttt{GaussianBlur(imgroi, imgroi, 5, 5, 1.2, 1.2);}\\ +\>\texttt{GaussianBlur(imgroi, imgroi, Size(5, 5), 1.2, 1.2);}\\ Example 2. Somewhere in a linear algebra algorithm \\ \>\texttt{m.row(i) += m.row(j)*alpha;}\\ Example 3. Copy image ROI to another image with conversion\\ @@ -291,20 +291,16 @@ other matrix operations, such as -- correspondingly, addition, subtraction, element-wise multiplication ... comparison of two matrices or a matrix and a scalar. -% (a, a, a, 255)*(r, g, b, a)/255 -% 255 - (a, a, a, 255) = (255 - a, ..., 0) -% (b, b, b, b)*(255 - a, 255 - a, 255 - a, 0)/255 = ((255 - a)*b/255, ...., (255 - a)) - \begin{tabbing} Exa\=mple. \href{http://en.wikipedia.org/wiki/Alpha_compositing}{Alpha compositing} function:\\ \texttt{void alphaCompose(const Mat\& rgba1,}\\ \> \texttt{const Mat\& rgba2, Mat\& rgba\_dest)}\\ \texttt{\{ }\\ -\> \texttt{Mat a1(rgba1.size(), rgba1.type), ra1;}\\ -\> \texttt{Mat a2(rgba2.size(), rgba2.type);}\\ +\> \texttt{Mat a1(rgba1.size(), rgba1.type()), ra1;}\\ +\> \texttt{Mat a2(rgba2.size(), rgba2.type());}\\ \> \texttt{int mixch[]=\{3, 0, 3, 1, 3, 2, 3, 3\};}\\ -\> \texttt{mixChannels(\&rgba1, \&a1, mixch, 4);}\\ -\> \texttt{mixChannels(\&rgba2, \&a2, mixch, 4);}\\ +\> \texttt{mixChannels(\&rgba1, 1, \&a1, 1, mixch, 4);}\\ +\> \texttt{mixChannels(\&rgba2, 1, \&a2, 1, mixch, 4);}\\ \> \texttt{subtract(Scalar::all(255), a1, ra1);}\\ \> \texttt{bitwise\_or(a1, Scalar(0,0,0,255), a1);}\\ \> \texttt{bitwise\_or(a2, Scalar(0,0,0,255), a2);}\\ @@ -362,7 +358,7 @@ Exa\=mple. \href{http://en.wikipedia.org/wiki/Alpha_compositing}{Alpha compositi For some operations a more convenient \href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html#matrix-expressions}{algebraic notation} can be used, for example: \begin{tabbing} \texttt{Mat}\={} \texttt{delta = (J.t()*J + lambda*}\\ -\>\texttt{Mat::eye(J.cols, J.cols, J.type())}\\ +\>\texttt{Mat::eye(J.cols, J.cols, J.type()))}\\ \>\texttt{.inv(CV\_SVD)*(J.t()*err);} \end{tabbing} implements the core of Levenberg-Marquardt optimization algorithm. @@ -393,8 +389,8 @@ implements the core of Levenberg-Marquardt optimization algorithm. \begin{tabbing} Exa\=mple. Filter image in-place with a 3x3 high-pass filter\\ \> (preserve negative responses by shifting the result by 128):\\ -\texttt{filter2D(image, image, image.depth(), Mat(Mat\_(3,3)}\\ -\> \texttt{ << -1, -1, -1, -1, 9, -1, -1, -1, -1), Point(1,1), 128);}\\ +\texttt{filter2D(image, image, image.depth(), (Mat\_(3,3)<<}\\ +\> \texttt{-1, -1, -1, -1, 9, -1, -1, -1, -1), Point(1,1), 128);}\\ \end{tabbing} \subsection{Geometrical Transformations} @@ -506,7 +502,7 @@ samples on what are the contours and how to use them. \texttt{CV\_Assert(tl.type() == FileNode::SEQ \&\& tl.size() == 3);}\\ \texttt{double tl0 = (double)tl[0]; string tl1 = (string)tl[1];}\\ -\texttt{int m = (int)tl[2]["month"], d = (int)tl[2]["day"]};\\ +\texttt{int m = (int)tl[2]["month"], d = (int)tl[2]["day"];}\\ \texttt{int year = (int)tl[2]["year"];}\\ \texttt{FileNode tm = fs["mystruct"];}\\