From ca530a6265c3cba36e67249773d3c7b12ef76113 Mon Sep 17 00:00:00 2001 From: Abid K Date: Sun, 5 Jan 2014 09:55:26 +0530 Subject: [PATCH 01/14] Update README.md --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 520f6a5..2305910 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,12 @@ OpenCV2-Python-Guide This repo contains tutorials on OpenCV-Python library using new cv2 interface +** IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x ** +** IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x ** +** IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x ** +** IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x ** +** IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x ** + Contents ---------- * source : contains the original source of docs in markup language @@ -10,7 +16,9 @@ Contents Online --------- -An online version of this tutorials can be found at https://opencv-python-tutroals.readthedocs.org/en/latest/index.html + +* For official tutorials, please visit : http://docs.opencv.org/trunk/doc/py_tutorials/py_tutorials.html +* https://opencv-python-tutroals.readthedocs.org/en/latest/index.html - This is only for checking. May contain lots of errors, please stick to the official tutorials. Offline --------- From d4c07a865811c92dc58ba30ccfcef5c4565c1285 Mon Sep 17 00:00:00 2001 From: Abid K Date: Sun, 5 Jan 2014 09:59:00 +0530 Subject: [PATCH 02/14] Update README.md --- README.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 2305910..09d23cd 100644 --- a/README.md +++ b/README.md @@ -3,21 +3,18 @@ OpenCV2-Python-Guide This repo contains tutorials on OpenCV-Python library using new cv2 interface -** IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x ** -** IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x ** -** IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x ** -** IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x ** -** IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x ** +**IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x** -Contents ----------- -* source : contains the original source of docs in markup language -* build : contains ready-to-use documentation in html format +**IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x** + +**IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x** + +Please try the examples with OpenCV 3x before sending any bug reports Online --------- -* For official tutorials, please visit : http://docs.opencv.org/trunk/doc/py_tutorials/py_tutorials.html +* **For official tutorials, please visit : http://docs.opencv.org/trunk/doc/py_tutorials/py_tutorials.html** * https://opencv-python-tutroals.readthedocs.org/en/latest/index.html - This is only for checking. May contain lots of errors, please stick to the official tutorials. Offline From a7de08b4027367a4ec8e2df9b127a393643512e2 Mon Sep 17 00:00:00 2001 From: Abid K Date: Sat, 11 Jan 2014 10:05:11 +0530 Subject: [PATCH 03/14] info about data files --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 09d23cd..d2db74e 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ OpenCV2-Python-Guide This repo contains tutorials on OpenCV-Python library using new cv2 interface **IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x** +======================================================================= **IMP - This tutorial is meant for OpenCV 3x version. Not OpenCV 2x** @@ -11,6 +12,11 @@ This repo contains tutorials on OpenCV-Python library using new cv2 interface Please try the examples with OpenCV 3x before sending any bug reports +Data files +----------- + +The input data used in these tutorials are given in **Data** folder + Online --------- From 2ff2b03f5eff5ed01e5c560849450426f463e2a1 Mon Sep 17 00:00:00 2001 From: abidrahmank Date: Sat, 11 Jan 2014 10:58:04 +0530 Subject: [PATCH 04/14] added data files --- .gitignore | 2 ++ data/butterfly.jpg | Bin 0 -> 44746 bytes data/home.jpg | Bin 0 -> 32197 bytes data/left.jpg | Bin 0 -> 24056 bytes data/messi5.jpg | Bin 0 -> 72937 bytes data/readme.txt | 19 +++++++++++++++++++ data/right.jpg | Bin 0 -> 23826 bytes 7 files changed, 21 insertions(+) create mode 100644 data/butterfly.jpg create mode 100644 data/home.jpg create mode 100644 data/left.jpg create mode 100644 data/messi5.jpg create mode 100644 data/readme.txt create mode 100644 data/right.jpg diff --git a/.gitignore b/.gitignore index c5a5ca5..79b590d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ build build/ build/* +*~ + diff --git a/data/butterfly.jpg b/data/butterfly.jpg new file mode 100644 index 0000000000000000000000000000000000000000..67d60f05552615d6abef100ca1010409a3d13fa0 GIT binary patch literal 44746 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 az~J}k!KoPTGAWPuv*}Lbtucr+2>;nA`L`GV literal 0 HcmV?d00001 diff --git a/data/left.jpg b/data/left.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f4c26303a2591eec80c08ce134baf7bc329d42fb GIT binary patch literal 24056 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 Hi^c!hHrSC# literal 0 HcmV?d00001 diff --git a/data/messi5.jpg b/data/messi5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cd437610fe392d3ca892f62e26c33521f5147295 GIT binary patch literal 72937 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�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%0DdO~R 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 literal 0 HcmV?d00001 From 0e75e60262ad864aaabe0728815678ae97fda13b Mon Sep 17 00:00:00 2001 From: AlgoFl4sh Date: Fri, 17 Jan 2014 09:45:17 -0500 Subject: [PATCH 05/14] Update py_colorspaces.rst Changed "lower_green" and "upper_green" to "lower_blue" and "upper_blue" to be consistent with variables. --- .../py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.rst b/source/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.rst index 17d9432..15f86a9 100644 --- a/source/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.rst +++ b/source/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.rst @@ -58,7 +58,7 @@ Below is the code which are commented in detail : upper_blue = np.array([130,255,255]) # Threshold the HSV image to get only blue colors - mask = cv2.inRange(hsv, lower_green, upper_green) + mask = cv2.inRange(hsv, lower_blue, upper_blue) # Bitwise-AND mask and original image res = cv2.bitwise_and(frame,frame, mask= mask) From 95a8b11d90c07b14a91826ad688d507bffa8839f Mon Sep 17 00:00:00 2001 From: opencvclass Date: Wed, 22 Jan 2014 18:35:40 -0500 Subject: [PATCH 06/14] Update py_depthmap.rst changed 'more better' to 'better' --- source/py_tutorials/py_calib3d/py_depthmap/py_depthmap.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/py_tutorials/py_calib3d/py_depthmap/py_depthmap.rst b/source/py_tutorials/py_calib3d/py_depthmap/py_depthmap.rst index b848f0e..aac4dd0 100644 --- a/source/py_tutorials/py_calib3d/py_depthmap/py_depthmap.rst +++ b/source/py_tutorials/py_calib3d/py_depthmap/py_depthmap.rst @@ -48,7 +48,7 @@ Below code snippet shows a simple procedure to create disparity map. plt.imshow(disparity,'gray') plt.show() -Below image contains the original image (left) and its disparity map (right). As you can see, result is contaminated with high degree of noise. By adjusting the values of numDisparities and blockSize, you can get more better result. +Below image contains the original image (left) and its disparity map (right). As you can see, result is contaminated with high degree of noise. By adjusting the values of numDisparities and blockSize, you can get better results. .. image:: images/disparity_map.jpg :alt: Disparity Map From c537cd70af5ccfcb2ea492449234aa624ba2428c Mon Sep 17 00:00:00 2001 From: opencvclass Date: Sat, 25 Jan 2014 10:39:19 -0500 Subject: [PATCH 07/14] fixes to grammar Made editing fixes, grammar, capitalization, etc. rephrased some sentences that were ambiguous (to me) Also this statement is not really correct "Gaussian filtering is highly effective in removing Gaussian noise from the image.": the main goal of the Gaussian filter is to attenuate the influence of pixels that are further away from the central pixel, when compared to pixels that are immediately adjacent, and do this 'smoothly', i.e. us coefficient that fall off smoothy. The gaussian effect is in spatial domain. On the other hand, if you are talking about Gaussian noise, you are talking about the intensity domain. Different things... One of the nice features of Gaussian vs box filter is that b/c of abrupt falloff of the box filter coefficient in the spatial domain (the box filter is a step function) we will get Gibbs effects, therefore aliasing. (the Fourier transform of a step function filter is a sinc function, the ripples in the sinc are what causes the aliasing). By contrast the Fourier transform of a Gaussian is also a Gaussian, therefore no ripples, no Gibbs effects.. In sum I would just remove that sentence. Btw, this tutorial is great! Thanks for and making it available putting it together. We are going to use it in our class at JHU and encourage students to submit back errata. --- .../py_imgproc/py_filtering/py_filtering.rst | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/source/py_tutorials/py_imgproc/py_filtering/py_filtering.rst b/source/py_tutorials/py_imgproc/py_filtering/py_filtering.rst index 80b191b..d2d1082 100644 --- a/source/py_tutorials/py_imgproc/py_filtering/py_filtering.rst +++ b/source/py_tutorials/py_imgproc/py_filtering/py_filtering.rst @@ -7,21 +7,21 @@ Goals ======= Learn to: - * Blur the images with various low pass filters + * Blur imagess with various low pass filters * Apply custom-made filters to images (2D convolution) 2D Convolution ( Image Filtering ) ==================================== -As in one-dimensional signals, images also can be filtered with various low-pass filters(LPF), high-pass filters(HPF) etc. LPF helps in removing noises, blurring the images etc. HPF filters helps in finding edges in the images. +As for one-dimensional signals, images also can be filtered with various low-pass filters (LPF), high-pass filters (HPF), etc. A LPF helps in removing noise, or blurring the image. A HPF filters helps in finding edges in an image. -OpenCV provides a function **cv2.filter2D()** to convolve a kernel with an image. As an example, we will try an averaging filter on an image. A 5x5 averaging filter kernel will look like below: +OpenCV provides a function, **cv2.filter2D()**, to convolve a kernel with an image. As an example, we will try an averaging filter on an image. A 5x5 averaging filter kernel can be defined as follows: .. math:: K = \frac{1}{25} \begin{bmatrix} 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 & 1 \end{bmatrix} -Operation is like this: keep this kernel above a pixel, add all the 25 pixels below this kernel, take its average and replace the central pixel with the new average value. It continues this operation for all the pixels in the image. Try this code and check the result: +Filtering with the above kernel results in the following being performed: for each pixel, a 5x5 window is centered on this pixel, all pixels falling within this window are summed up, and the result is then divided by 25. This equates to computing the average of the pixel values inside that window. This operation is performed for all the pixels in the image to produce the output filtered image. Try this code and check the result: :: import cv2 @@ -48,20 +48,20 @@ Result: Image Blurring (Image Smoothing) ================================== -Image blurring is achieved by convolving the image with a low-pass filter kernel. It is useful for removing noises. It actually removes high frequency content (eg: noise, edges) from the image. So edges are blurred a little bit in this operation. (Well, there are blurring techniques which doesn't blur the edges too). OpenCV provides mainly four types of blurring techniques. +Image blurring is achieved by convolving the image with a low-pass filter kernel. It is useful for removing noise. It actually removes high frequency content (e.g: noise, edges) from the image resulting in edges being blurred when this is filter is applied. (Well, there are blurring techniques which do not blur edges). OpenCV provides mainly four types of blurring techniques. 1. Averaging -------------- -This is done by convolving image with a normalized box filter. It simply takes the average of all the pixels under kernel area and replace the central element. This is done by the function **cv2.blur()** or **cv2.boxFilter()**. Check the docs for more details about the kernel. We should specify the width and height of kernel. A 3x3 normalized box filter would look like below: +This is done by convolving the image with a normalized box filter. It simply takes the average of all the pixels under kernel area and replaces the central element with this average. This is done by the function **cv2.blur()** or **cv2.boxFilter()**. Check the docs for more details about the kernel. We should specify the width and height of kernel. A 3x3 normalized box filter would look like this: .. math:: K = \frac{1}{9} \begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{bmatrix} -.. note:: If you don't want to use normalized box filter, use **cv2.boxFilter()**. Pass an argument ``normalize=False`` to the function. +.. note:: If you don't want to use a normalized box filter, use **cv2.boxFilter()** and pass the argument ``normalize=False`` to the function. -Check a sample demo below with a kernel of 5x5 size: +Check the sample demo below with a kernel of 5x5 size: :: import cv2 @@ -85,10 +85,10 @@ Result: :align: center -2. Gaussian Blurring +2. Gaussian Filtering ---------------------- -In this, instead of box filter, gaussian kernel is used. It is done with the function, **cv2.GaussianBlur()**. We should specify the width and height of kernel which should be positive and odd. We also should specify the standard deviation in X and Y direction, sigmaX and sigmaY respectively. If only sigmaX is specified, sigmaY is taken as same as sigmaX. If both are given as zeros, they are calculated from kernel size. Gaussian blurring is highly effective in removing gaussian noise from the image. +In this approach, instead of a box filter consisting of equal filter coefficients, a Gaussian kernel is used. It is done with the function, **cv2.GaussianBlur()**. We should specify the width and height of the kernel which should be positive and odd. We also should specify the standard deviation in the X and Y directions, sigmaX and sigmaY respectively. If only sigmaX is specified, sigmaY is taken as equal to sigmaX. If both are given as zeros, they are calculated from the kernel size. Gaussian filtering is highly effective in removing Gaussian noise from the image. If you want, you can create a Gaussian kernel with the function, **cv2.getGaussianKernel()**. @@ -105,12 +105,12 @@ Result: :align: center -3. Median Blurring +3. Median Filtering -------------------- -Here, the function **cv2.medianBlur()** takes median of all the pixels under kernel area and central element is replaced with this median value. This is highly effective against salt-and-pepper noise in the images. Interesting thing is that, in the above filters, central element is a newly calculated value which may be a pixel value in the image or a new value. But in median blurring, central element is always replaced by some pixel value in the image. It reduces the noise effectively. Its kernel size should be a positive odd integer. +Here, the function **cv2.medianBlur()** computes the median of all the pixels under the kernel window and the central pixel is replaced with this median value. This is highly effective in removing salt-and-pepper noise. One interesting thing to note is that, in the Gaussian and box filters, the filtered value for the central element can be a value which may not exist in the original image. However this is not the case in median filtering, since the central element is always replaced by some pixel value in the image. This reduces the noise effectively. The kernel size must be a positive odd integer. -In this demo, I added a 50% noise to our original image and applied median blur. Check the result: +In this demo, we add a 50% noise to our original image and use a median filter. Check the result: :: median = cv2.medianBlur(img,5) @@ -125,11 +125,11 @@ Result: 4. Bilateral Filtering ----------------------- -**cv2.bilateralFilter()** is highly effective in noise removal while keeping edges sharp. But the operation is slower compared to other filters. We already saw that gaussian filter takes the a neighbourhood around the pixel and find its gaussian weighted average. This gaussian filter is a function of space alone, that is, nearby pixels are considered while filtering. It doesn't consider whether pixels have almost same intensity. It doesn't consider whether pixel is an edge pixel or not. So it blurs the edges also, which we don't want to do. +As we noted, the filters we presented earlier tend to blur edges. This is not the case for the bilateral filter, **cv2.bilateralFilter()**, which was defined for, and is highly effective at noise removal while preserving edges. But the operation is slower compared to other filters. We already saw that a Gaussian filter takes the a neighborhood around the pixel and finds its Gaussian weighted average. This Gaussian filter is a function of space alone, that is, nearby pixels are considered while filtering. It does not consider whether pixels have almost the same intensity value and does not consider whether the pixel lies on an edge or not. The resulting effect is that Gaussian filters tend to blur edges, which is undesirable. -Bilateral filter also takes a gaussian filter in space, but one more gaussian filter which is a function of pixel difference. Gaussian function of space make sure only nearby pixels are considered for blurring while gaussian function of intensity difference make sure only those pixels with similar intensity to central pixel is considered for blurring. So it preserves the edges since pixels at edges will have large intensity variation. +The bilateral filter also uses a Gaussian filter in the space domain, but it also uses one more (multiplicative) Gaussian filter component which is a function of pixel intensity differences. The Gaussian function of space makes sure that only pixels are 'spatial neighbors' are considered for filtering, while the Gaussian component applied in the intensity domain (a Gaussian function of intensity differences) ensures that only those pixels with intensities similar to that of the central pixel ('intensity neighbors') are included to compute the blurred intensity value. As a result, this method preserves edges, since for pixels lying near edges, neighboring pixels placed on the other side of the edge, and therefore exhibiting large intensity variations when compared to the central pixel, will not be included for blurring. -Below samples shows use bilateral filter (For details on arguments, visit docs). +The sample below demonstrates the use of bilateral filtering (For details on arguments, see the OpenCV docs). :: blur = cv2.bilateralFilter(img,9,75,75) @@ -140,12 +140,14 @@ Result: :alt: Bilateral Filtering :align: center -See, the texture on the surface is gone, but edges are still preserved. +Note that the texture on the surface is gone, but edges are still preserved. Additional Resources ====================== -1. Details about the `bilateral filtering `_ +1. Details about the `bilateral filtering can be found at `_ Exercises =========== + +Take an image, add Gaussian noise and salt and pepper noise, compare the effect of blurring via box, Gaussian, median and bilateral filters for both noisy images, as you change the level of noise. From ca1eeaf13161616cf2fbf9b6732b825e5bfa0945 Mon Sep 17 00:00:00 2001 From: opencvclass Date: Sat, 25 Jan 2014 10:57:25 -0500 Subject: [PATCH 08/14] gramatical correction --- .../py_imgproc/py_morphological_ops/py_morphological_ops.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/py_tutorials/py_imgproc/py_morphological_ops/py_morphological_ops.rst b/source/py_tutorials/py_imgproc/py_morphological_ops/py_morphological_ops.rst index db24865..b1a6613 100644 --- a/source/py_tutorials/py_imgproc/py_morphological_ops/py_morphological_ops.rst +++ b/source/py_tutorials/py_imgproc/py_morphological_ops/py_morphological_ops.rst @@ -21,7 +21,7 @@ Morphological transformations are some simple operations based on the image shap 1. Erosion -------------- -The basic idea of erosion is just like soil erosion only, it erodes away the boundaries of foreground object (Always try to keep foreground in white). So what it does? The kernel slides through the image (as in 2D convolution). A pixel in the original image (either 1 or 0) will be considered 1 only if all the pixels under the kernel is 1, otherwise it is eroded (made to zero). +The basic idea of erosion is just like soil erosion only, it erodes away the boundaries of foreground object (Always try to keep foreground in white). So what does it do? The kernel slides through the image (as in 2D convolution). A pixel in the original image (either 1 or 0) will be considered 1 only if all the pixels under the kernel is 1, otherwise it is eroded (made to zero). So what happends is that, all the pixels near boundary will be discarded depending upon the size of kernel. So the thickness or size of the foreground object decreases or simply white region decreases in the image. It is useful for removing small white noises (as we have seen in colorspace chapter), detach two connected objects etc. From 95ce0fd81089fd2fdfc9a720399c55798ea7c490 Mon Sep 17 00:00:00 2001 From: vihari Date: Sat, 1 Mar 2014 09:21:15 +0530 Subject: [PATCH 09/14] Update py_svm_basics.rst Fixed some typos --- .../py_tutorials/py_ml/py_svm/py_svm_basics/py_svm_basics.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/py_tutorials/py_ml/py_svm/py_svm_basics/py_svm_basics.rst b/source/py_tutorials/py_ml/py_svm/py_svm_basics/py_svm_basics.rst index 2bd7d6b..72b80b5 100644 --- a/source/py_tutorials/py_ml/py_svm/py_svm_basics/py_svm_basics.rst +++ b/source/py_tutorials/py_ml/py_svm/py_svm_basics/py_svm_basics.rst @@ -62,9 +62,9 @@ Let us define a kernel function :math:`K(p,q)` which does a dot product between .. math:: - K(p,q) = \phi(p).\phi(q) &= \phi(p)^T \phi(q) \\ + K(p,q) = \phi(p).\phi(q) &= \phi(p)^T , \phi(q) \\ &= (p_{1}^2,p_{2}^2,\sqrt{2} p_1 p_2).(q_{1}^2,q_{2}^2,\sqrt{2} q_1 q_2) \\ - &= p_1 q_1 + p_2 q_2 + 2 p_1 q_1 p_2 q_2 \\ + &= p_{1}^2 q_{1}^2 + p_{2}^2 q_{2}^2 + 2 p_1 q_1 p_2 q_2 \\ &= (p_1 q_1 + p_2 q_2)^2 \\ \phi(p).\phi(q) &= (p.q)^2 From 9bc4b988507acbea9e58c693ac9244aaa5b4f198 Mon Sep 17 00:00:00 2001 From: Yuval Langer Date: Thu, 27 Mar 2014 11:45:06 +0200 Subject: [PATCH 10/14] Minor wording correction --- source/py_tutorials/py_core/py_basic_ops/py_basic_ops.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/py_tutorials/py_core/py_basic_ops/py_basic_ops.rst b/source/py_tutorials/py_core/py_basic_ops/py_basic_ops.rst index dbb6404..7ea2c97 100644 --- a/source/py_tutorials/py_core/py_basic_ops/py_basic_ops.rst +++ b/source/py_tutorials/py_core/py_basic_ops/py_basic_ops.rst @@ -49,7 +49,7 @@ You can modify the pixel values the same way. .. warning:: Numpy is a optimized library for fast array calculations. So simply accessing each and every pixel values and modifying it will be very slow and it is discouraged. -.. note:: Above mentioned method is normally used for selecting a region of array, say first 5 rows and last 3 columns like that. For individual pixel access, Numpy array methods, ``array.item()`` and ``array.itemset()`` is considered to be more better. But it always returns a scalar. So if you want to access all B,G,R values, you need to call ``array.item()`` separately for all. +.. note:: Above mentioned method is normally used for selecting a region of array, say first 5 rows and last 3 columns like that. For individual pixel access, Numpy array methods, ``array.item()`` and ``array.itemset()`` is considered to be better. But it always returns a scalar. So if you want to access all B,G,R values, you need to call ``array.item()`` separately for all. Better pixel accessing and editing method : From 84e17ec75c2e1b2625564e2c2fed5ab8a54f899c Mon Sep 17 00:00:00 2001 From: Kevin Date: Wed, 21 May 2014 09:53:09 -0400 Subject: [PATCH 11/14] minor re-wording --- .../py_tutorials/py_core/py_basic_ops/py_basic_ops.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/source/py_tutorials/py_core/py_basic_ops/py_basic_ops.rst b/source/py_tutorials/py_core/py_basic_ops/py_basic_ops.rst index 7ea2c97..62f70ff 100644 --- a/source/py_tutorials/py_core/py_basic_ops/py_basic_ops.rst +++ b/source/py_tutorials/py_core/py_basic_ops/py_basic_ops.rst @@ -94,7 +94,7 @@ Image datatype is obtained by ``img.dtype``: Image ROI =========== -Sometimes, you will have to play with certain region of images. For eye detection in images, first face detection is done all over the image and when face is obtained, we select the face region alone and search for eyes inside it instead of searching whole image. It improves accuracy (because eyes are always on faces :D ) and performance (because we search for a small area) +Sometimes, you will have to play with certain region of images. For eye detection in images, first perform face detection over the image until the face is found, then search within the face region for eyes. This approach improves accuracy (because eyes are always on faces :D ) and performance (because we search for a small area). ROI is again obtained using Numpy indexing. Here I am selecting the ball and copying it to another region in the image: :: @@ -111,7 +111,7 @@ Check the results below: Splitting and Merging Image Channels ====================================== -Sometimes you will need to work separately on B,G,R channels of image. Then you need to split the BGR images to single planes. Or another time, you may need to join these individual channels to BGR image. You can do it simply by: +The B,G,R channels of an image can be split into their individual planes when needed. Then, the individual channels can be merged back together to form a BGR image again. This can be performed by: :: >>> b,g,r = cv2.split(img) @@ -121,15 +121,16 @@ Or >>> b = img[:,:,0] -Suppose, you want to make all the red pixels to zero, you need not split like this and put it equal to zero. You can simply use Numpy indexing, and that is more faster. +Suppose, you want to make all the red pixels to zero, you need not split like this and put it equal to zero. You can simply use Numpy indexing which is faster. :: >>> img[:,:,2] = 0 -.. warning:: ``cv2.split()`` is a costly operation (in terms of time). So do it only if you need it. Otherwise go for Numpy indexing. +.. warning:: ``cv2.split()`` is a costly operation (in terms of time), so only use it if necessary. Numpy indexing is much more efficient and should be used if possible. Making Borders for Images (Padding) ==================================== + If you want to create a border around the image, something like a photo frame, you can use **cv2.copyMakeBorder()** function. But it has more applications for convolution operation, zero padding etc. This function takes following arguments: * **src** - input image From 5ce78496a0b0de8e301e7f303747656e67cc59b0 Mon Sep 17 00:00:00 2001 From: "Christian S. Perone" Date: Fri, 20 Jun 2014 00:52:22 -0300 Subject: [PATCH 12/14] Fixing typo in the getting started part of the contours tutorial. --- .../py_contours/py_contours_begin/py_contours_begin.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/py_tutorials/py_imgproc/py_contours/py_contours_begin/py_contours_begin.rst b/source/py_tutorials/py_imgproc/py_contours/py_contours_begin/py_contours_begin.rst index ae28199..5c1b769 100644 --- a/source/py_tutorials/py_imgproc/py_contours/py_contours_begin/py_contours_begin.rst +++ b/source/py_tutorials/py_imgproc/py_contours/py_contours_begin/py_contours_begin.rst @@ -43,7 +43,7 @@ To draw the contours, ``cv2.drawContours`` function is used. It can also be used To draw all the contours in an image: :: - img = cv2.drawContour(img, contours, -1, (0,255,0), 3) + img = cv2.drawContours(img, contours, -1, (0,255,0), 3) To draw an individual contour, say 4th contour: :: From ab6dcc5094699fe5013c688dca5a15389b83e148 Mon Sep 17 00:00:00 2001 From: abidrahmank Date: Thu, 24 Jul 2014 23:14:27 +0530 Subject: [PATCH 13/14] pybindings --- .../.py_bindings_basics.rst.swp | Bin 0 -> 20480 bytes .../py_bindings_basics/py_bindings_basics.rst | 112 ++++++++++++++++++ .../images/inpainticon.jpg | Bin 0 -> 5020 bytes .../images/nlm_icon.jpg | Bin 0 -> 3735 bytes .../py_table_of_contents_bindings.rst | 36 ++++++ source/py_tutorials/py_tutorials.rst | 18 ++- 6 files changed, 163 insertions(+), 3 deletions(-) create mode 100644 source/py_tutorials/py_bindings/py_bindings_basics/.py_bindings_basics.rst.swp create mode 100644 source/py_tutorials/py_bindings/py_bindings_basics/py_bindings_basics.rst create mode 100644 source/py_tutorials/py_bindings/py_table_of_contents_bindings/images/inpainticon.jpg create mode 100644 source/py_tutorials/py_bindings/py_table_of_contents_bindings/images/nlm_icon.jpg create mode 100644 source/py_tutorials/py_bindings/py_table_of_contents_bindings/py_table_of_contents_bindings.rst diff --git a/source/py_tutorials/py_bindings/py_bindings_basics/.py_bindings_basics.rst.swp b/source/py_tutorials/py_bindings/py_bindings_basics/.py_bindings_basics.rst.swp new file mode 100644 index 0000000000000000000000000000000000000000..96597f450e4848c194a2b2f4100debc670df067b GIT binary patch literal 20480 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 W74ldij}`J*xKD?l1)qNMSpNW%h@z|j literal 0 HcmV?d00001 diff --git a/source/py_tutorials/py_bindings/py_bindings_basics/py_bindings_basics.rst b/source/py_tutorials/py_bindings/py_bindings_basics/py_bindings_basics.rst new file mode 100644 index 0000000..7334123 --- /dev/null +++ b/source/py_tutorials/py_bindings/py_bindings_basics/py_bindings_basics.rst @@ -0,0 +1,112 @@ +.. _Bindings_Basics: + +How OpenCV-Python Bindings Works? +************************************ + +Goal +===== + +Learn: + + * How OpenCV-Python bindings are generated? + * How to extend new OpenCV modules to Python? + +How OpenCV-Python bindings are generated? +========================================= + +In OpenCV, all algorithms are implemented in C++. But these algorithms can be used from different languages like Python, Java etc. This is made possible by the bindings generator files. These files form a bridge between C++ and Python which enable users to call C++ functions from Python. To get a complete picture of what is happening background, a good knowledge of Python/C API is required. A simple example on extending C++ functions to Python can be found in official Python documentation[1]. So extending every function in OpenCV to Python by writing its wrapper function is a time-consuming task. So OpenCV does it more intelligent way. OpenCV generates these wrapper functions automatically from the C++ headers using some Python scripts which are located in ``modules/python/src2``. We will look into what they do. + +First, ``modules/python/CMakeFiles.txt`` is a cmake script which checks the modules to be extended to Python. It will automatically check all the modules to be extended and grab their header files. These header files contain list of all classes, functions, constants etc. for that particular modules. + +Second, these header files are passed to a Python script, ``modules/python/src2/gen2.py``. He is the Python bindings generator script. It calls another Python script ``modules/python/src2/hdr_parser.py``. This is the header parser file. This guy splits the complete header file into small Python lists. So these lists contain all details about a particular function, class etc. For example, a function will be parsed to get a list containing function name, return type, input arguments, argument types etc. Final list contains details of all the functions, structs, classes etc. in that header file. + +But header parser doesn't parse all the functions/classes in the header file. Instead, there are certain macros added to the beginning of these declarations which enables the header parser to identify functions to be parsed. These macros are added by the developer who programs the particular function. So the developer decides which functions should be extended to Python and which are not. Details of the macros will be given in next session. + +So header parser returns a final big list of parsed functions. Our generator script (gen2.py) will create wrapper functions for all the functions/classes/enums/structs parsed by header parser (You can find these header files during compilation in the ``build/modules/python/`` folder as ``pyopencv_generated_*.h`` files). But there may be some basic OpenCV datatypes like Mat, Vec4i, Size. They need to be extended manually. For example, a Mat type should be extended to Numpy array, Size should be extended to a tuple of two integers etc. Similarly, there may be some complex structs/classes/functions etc. which need to be extended manually. All such manual wrapper functions are placed in ``modules/python/src2/pycv2.hpp``. + +So now only thing left is the compilation of these wrapper files which gives us **cv2** module. So when you call a function, say ``res = equalizeHist(img1,img2)`` in Python, ``cv::Mat`` structures corresponding to ``img1``, ``img2`` and ``res`` will be formed and calls the ``equalizeHist()`` function in C++. Final result, ``res`` will be converted back into a Numpy array. So in short, almost all operations are done in C++ which gives us almost same speed as that of C++. + +So this is the basic version of how OpenCV-Python bindings are generated. + + +How to extend new modules to Python? +===================================== + +Header parser parse the header files based on some wrapper macros added to function declaration. Enumeration constants don't need any wrapper macros. They are automatically wrapped. But remaining functions, classes etc. need wrapper macros. + +Functions are extended using ``CV_EXPORTS_W`` macro. An example is shown below. + +.. code-block:: cpp + + CV_EXPORTS_W void equalizeHist( InputArray src, OutputArray dst ); + +Header parser can understand the input and output arguments from keywords like ``InputArray, OutputArray`` etc. But sometimes, we may need to hard-code inputs and outputs. For that, macros like ``CV_OUT, CV_IN_OUT`` etc. are used. + +.. code-block:: cpp + + CV_EXPORTS_W void minEnclosingCircle( InputArray points, + CV_OUT Point2f& center, CV_OUT float& radius ); + +For large classes also, ``CV_EXPORTS_W`` is used. To extend class methods, ``CV_WRAP`` is used. Similarly, ``CV_PROP`` is used for class fields. + +.. code-block:: cpp + + class CV_EXPORTS_W CLAHE : public Algorithm + { + public: + CV_WRAP virtual void apply(InputArray src, OutputArray dst) = 0; + + CV_WRAP virtual void setClipLimit(double clipLimit) = 0; + CV_WRAP virtual double getClipLimit() const = 0; + } + +Overloaded functions can be extended using ``CV_EXPORTS_AS``. But we need to pass a new name so that each function will be called by that name in Python. Take the case of integral function below. Three functions are available, so each one is named with a suffix in Python. Similarly ``CV_WRAP_AS`` can be used to wrap overloaded methods. + +.. code-block:: cpp + + //! computes the integral image + CV_EXPORTS_W void integral( InputArray src, OutputArray sum, int sdepth = -1 ); + + //! computes the integral image and integral for the squared image + CV_EXPORTS_AS(integral2) void integral( InputArray src, OutputArray sum, + OutputArray sqsum, int sdepth = -1, int sqdepth = -1 ); + + //! computes the integral image, integral for the squared image and the tilted integral image + CV_EXPORTS_AS(integral3) void integral( InputArray src, OutputArray sum, + OutputArray sqsum, OutputArray tilted, + int sdepth = -1, int sqdepth = -1 ); + +Small classes/structs are extended using ``CV_EXPORTS_W_SIMPLE``. These structs are passed by value to C++ functions. Examples are KeyPoint, Match etc. Their methods are extended by ``CV_WRAP`` and fields are extended by ``CV_PROP_RW``. + +.. code-block:: cpp + + class CV_EXPORTS_W_SIMPLE DMatch + { + public: + CV_WRAP DMatch(); + CV_WRAP DMatch(int _queryIdx, int _trainIdx, float _distance); + CV_WRAP DMatch(int _queryIdx, int _trainIdx, int _imgIdx, float _distance); + + CV_PROP_RW int queryIdx; // query descriptor index + CV_PROP_RW int trainIdx; // train descriptor index + CV_PROP_RW int imgIdx; // train image index + + CV_PROP_RW float distance; + }; + +Some other small classes/structs can be exported using ``CV_EXPORTS_W_MAP`` where it is exported to a Python native dictionary. Moments() is an example of it. + +.. code-block:: cpp + + class CV_EXPORTS_W_MAP Moments + { + public: + //! spatial moments + CV_PROP_RW double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03; + //! central moments + CV_PROP_RW double mu20, mu11, mu02, mu30, mu21, mu12, mu03; + //! central normalized moments + CV_PROP_RW double nu20, nu11, nu02, nu30, nu21, nu12, nu03; + }; + +So these are the major extension macros available in OpenCV. diff --git a/source/py_tutorials/py_bindings/py_table_of_contents_bindings/images/inpainticon.jpg b/source/py_tutorials/py_bindings/py_table_of_contents_bindings/images/inpainticon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc22cf0377a5600a2f6ecd6fe51767f555cb05db GIT binary patch literal 5020 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 literal 0 HcmV?d00001 diff --git a/source/py_tutorials/py_bindings/py_table_of_contents_bindings/images/nlm_icon.jpg b/source/py_tutorials/py_bindings/py_table_of_contents_bindings/images/nlm_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0861964b9cd7fd2fff6fc1dffc62f725b3900505 GIT binary patch literal 3735 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 Date: Sun, 10 Aug 2014 11:53:46 +0530 Subject: [PATCH 14/14] updated bindings section --- .../.py_bindings_basics.rst.swp | Bin 20480 -> 0 bytes .../py_bindings_basics/py_bindings_basics.rst | 14 +++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) delete mode 100644 source/py_tutorials/py_bindings/py_bindings_basics/.py_bindings_basics.rst.swp diff --git a/source/py_tutorials/py_bindings/py_bindings_basics/.py_bindings_basics.rst.swp b/source/py_tutorials/py_bindings/py_bindings_basics/.py_bindings_basics.rst.swp deleted file mode 100644 index 96597f450e4848c194a2b2f4100debc670df067b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 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 W74ldij}`J*xKD?l1)qNMSpNW%h@z|j diff --git a/source/py_tutorials/py_bindings/py_bindings_basics/py_bindings_basics.rst b/source/py_tutorials/py_bindings/py_bindings_basics/py_bindings_basics.rst index 7334123..7e48930 100644 --- a/source/py_tutorials/py_bindings/py_bindings_basics/py_bindings_basics.rst +++ b/source/py_tutorials/py_bindings/py_bindings_basics/py_bindings_basics.rst @@ -14,17 +14,17 @@ Learn: How OpenCV-Python bindings are generated? ========================================= -In OpenCV, all algorithms are implemented in C++. But these algorithms can be used from different languages like Python, Java etc. This is made possible by the bindings generator files. These files form a bridge between C++ and Python which enable users to call C++ functions from Python. To get a complete picture of what is happening background, a good knowledge of Python/C API is required. A simple example on extending C++ functions to Python can be found in official Python documentation[1]. So extending every function in OpenCV to Python by writing its wrapper function is a time-consuming task. So OpenCV does it more intelligent way. OpenCV generates these wrapper functions automatically from the C++ headers using some Python scripts which are located in ``modules/python/src2``. We will look into what they do. +In OpenCV, all algorithms are implemented in C++. But these algorithms can be used from different languages like Python, Java etc. This is made possible by the bindings generators. These generators create a bridge between C++ and Python which enables users to call C++ functions from Python. To get a complete picture of what is happening in background, a good knowledge of Python/C API is required. A simple example on extending C++ functions to Python can be found in official Python documentation[1]. So extending all functions in OpenCV to Python by writing their wrapper functions manually is a time-consuming task. So OpenCV does it in a more intelligent way. OpenCV generates these wrapper functions automatically from the C++ headers using some Python scripts which are located in ``modules/python/src2``. We will look into what they do. -First, ``modules/python/CMakeFiles.txt`` is a cmake script which checks the modules to be extended to Python. It will automatically check all the modules to be extended and grab their header files. These header files contain list of all classes, functions, constants etc. for that particular modules. +First, ``modules/python/CMakeFiles.txt`` is a CMake script which checks the modules to be extended to Python. It will automatically check all the modules to be extended and grab their header files. These header files contain list of all classes, functions, constants etc. for that particular modules. -Second, these header files are passed to a Python script, ``modules/python/src2/gen2.py``. He is the Python bindings generator script. It calls another Python script ``modules/python/src2/hdr_parser.py``. This is the header parser file. This guy splits the complete header file into small Python lists. So these lists contain all details about a particular function, class etc. For example, a function will be parsed to get a list containing function name, return type, input arguments, argument types etc. Final list contains details of all the functions, structs, classes etc. in that header file. +Second, these header files are passed to a Python script, ``modules/python/src2/gen2.py``. This is the Python bindings generator script. It calls another Python script ``modules/python/src2/hdr_parser.py``. This is the header parser script. This header parser splits the complete header file into small Python lists. So these lists contain all details about a particular function, class etc. For example, a function will be parsed to get a list containing function name, return type, input arguments, argument types etc. Final list contains details of all the functions, structs, classes etc. in that header file. -But header parser doesn't parse all the functions/classes in the header file. Instead, there are certain macros added to the beginning of these declarations which enables the header parser to identify functions to be parsed. These macros are added by the developer who programs the particular function. So the developer decides which functions should be extended to Python and which are not. Details of the macros will be given in next session. +But header parser doesn't parse all the functions/classes in the header file. The developer has to specify which functions should be exported to Python. For that, there are certain macros added to the beginning of these declarations which enables the header parser to identify functions to be parsed. These macros are added by the developer who programs the particular function. In short, the developer decides which functions should be extended to Python and which are not. Details of those macros will be given in next session. So header parser returns a final big list of parsed functions. Our generator script (gen2.py) will create wrapper functions for all the functions/classes/enums/structs parsed by header parser (You can find these header files during compilation in the ``build/modules/python/`` folder as ``pyopencv_generated_*.h`` files). But there may be some basic OpenCV datatypes like Mat, Vec4i, Size. They need to be extended manually. For example, a Mat type should be extended to Numpy array, Size should be extended to a tuple of two integers etc. Similarly, there may be some complex structs/classes/functions etc. which need to be extended manually. All such manual wrapper functions are placed in ``modules/python/src2/pycv2.hpp``. -So now only thing left is the compilation of these wrapper files which gives us **cv2** module. So when you call a function, say ``res = equalizeHist(img1,img2)`` in Python, ``cv::Mat`` structures corresponding to ``img1``, ``img2`` and ``res`` will be formed and calls the ``equalizeHist()`` function in C++. Final result, ``res`` will be converted back into a Numpy array. So in short, almost all operations are done in C++ which gives us almost same speed as that of C++. +So now only thing left is the compilation of these wrapper files which gives us **cv2** module. So when you call a function, say ``res = equalizeHist(img1,img2)`` in Python, you pass two numpy arrays and you expect another numpy array as the output. So these numpy arrays are converted to ``cv::Mat`` and then calls the ``equalizeHist()`` function in C++. Final result, ``res`` will be converted back into a Numpy array. So in short, almost all operations are done in C++ which gives us almost same speed as that of C++. So this is the basic version of how OpenCV-Python bindings are generated. @@ -40,7 +40,7 @@ Functions are extended using ``CV_EXPORTS_W`` macro. An example is shown below. CV_EXPORTS_W void equalizeHist( InputArray src, OutputArray dst ); -Header parser can understand the input and output arguments from keywords like ``InputArray, OutputArray`` etc. But sometimes, we may need to hard-code inputs and outputs. For that, macros like ``CV_OUT, CV_IN_OUT`` etc. are used. +Header parser can understand the input and output arguments from keywords like ``InputArray, OutputArray`` etc. But sometimes, we may need to hardcode inputs and outputs. For that, macros like ``CV_OUT, CV_IN_OUT`` etc. are used. .. code-block:: cpp @@ -109,4 +109,4 @@ Some other small classes/structs can be exported using ``CV_EXPORTS_W_MAP`` wher CV_PROP_RW double nu20, nu11, nu02, nu30, nu21, nu12, nu03; }; -So these are the major extension macros available in OpenCV. +So these are the major extension macros available in OpenCV. Typically, a developer has to put proper macros in their appropriate positions. Rest is done by generator scripts. Sometimes, there may be an exceptional cases where generator scripts cannot create the wrappers. Such functions need to be handled manually. But most of the time, a code written according to OpenCV coding guidelines will be automatically wrapped by generator scripts.