Successfully reported this slideshow.
Upcoming SlideShare
×

# Python for Computer Vision - Revision

A brief review about Python for computer vision showing the different modules necessary to dive into computer vision.
The modules presented are NumPy, SciPy, and Matplotlib.

See all

### Related Audiobooks

#### Free with a 30 day trial from Scribd

See all
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

### Python for Computer Vision - Revision

1. 1. Python for Computer Vision Ahmed Fawzy Gad ahmed.fawzy@ci.menofia.edu.eg MENOUFIA UNIVERSITY FACULTY OF COMPUTERS AND INFORMATION INFORMATION TECHNOLOGY COMPUTER VISION ‫المنوفية‬ ‫جامعة‬ ‫والمعلومات‬ ‫الحاسبات‬ ‫كلية‬ ‫المعلومات‬ ‫تكنولوجيا‬ ‫بالحاسب‬ ‫الرؤية‬ ‫المنوفية‬ ‫جامعة‬ Tuesday 26 September 2017
2. 2. Index • Traditional Data Storage in Python • NumPy Arrays • Matplotlib • SciPy
3. 3. Goals of Computer Vision • Computer vision aims to enable computer to see, identify objects, and analyze such images to understand them like or better than humans. • To do this, computer needs to store and process images to get useful information. CAT
4. 4. Storing Data in Python List Tuple Data Structures Which one is suitable for storing images? Let`s See.
5. 5. List Vs. Tuple • Image is MD. Which one supports MD storage? • Which one supports updating its elements? Both List Tuples are immutable.
6. 6. Python List for Image Storage • List is mutable and thus we can edit the image pixels easily and apply operations. • So, lets start storing an image into a Python list. The following code reads an image in the img_list variable.
7. 7. Very time consuming for simple operations
8. 8. Very time consuming for simple operations. • Why not applying arithmetic operations rather than looping? img_list = img_list + 50
9. 9. List is complex. What is the alternative? • List adds more complexity in making operations over the images. One drawback was seen previously is that list operations are time consuming because they require pixel by pixel processing. • The best way for storing images is using arrays. • Rather than being time efficient in processing images, arrays has many other advantages. Can you imagine what?
10. 10. Python Arrays • Lists are already available in Python. To use Python arrays, additional libraries must be used. • The library supporting arrays in Python is called Numerical Python (NumPy). • NumPy can be installed using Python command-line. • It is also available in all-in-one packages like Anaconda.
11. 11. Installing NumPy • Based on your environment, you can install new modules. • For traditional Python distributions, use the PIP installer. pip install numpy • For Anaconda, use the conda installed conda install numpy • But it is by default available in Anaconda.
12. 12. Importing a Python Module • After installing NumPy, we can import it in our programs and scripts.
13. 13. NumPy Array for MD Data
14. 14. Matplotlib: Displaying the Image
15. 15. Array Data Type • The problem is expecting uint8 data type but another data type was used. • To know what is the array data type, use the dtype array property. • Change array type to uint8. How to make the conversion to uint8?
16. 16. Controlling Array dtype • When creating the array, set the dtype argument of numpy.array to the desired data type. • dtype argument can be set to multiple types.
17. 17. Creating Array with dtype of uint8
18. 18. Controlling Array dtype • After array being created, use the astype method of numpy.ndarray. • It make a new copy of the array after being casted to the specified type in the dtype argument.
19. 19. Array Operations • Arithemetic Operations • Operations between arrays
20. 20. More Array Creation Methods • Array Creation • arange • linspace arange vs. linspace
21. 21. Array Indexing & Slicing • Indexing can be forward or backward. • Forward indexing: from start to end. • Backward indexing: from end to start. • General form of indexing: my_array[start:stop:step] • In backward indexing, the index of the last element is -1. Start End 0 2 End Start -3 -1 Forward Backward
22. 22. Indexing & Slicing Examples – 1D Array • Forward: my_array[start=0:stop=6:step=2] • Backward: my_array[start=-1:stop=-6:step=-2] • Get all elements starting from index 3
23. 23. Indexing & Slicing Examples – 2D Array • For MD arrays, indexing can be applied for each individual dimension. Intersection between the different dimensions will be returned. • Forward: my_array[start=0:stop=3:step=2, start=1:stop=4:step=1] • Forward: my_array[start=-1:stop=-3:step=-1, start=0:stop=3:step=1]
24. 24. Iterating Through Arrays For While
25. 25. Matplotlib: Plotting Data
26. 26. Scientific Python (SciPy) • The main use of NumPy is to support numerical arrays in Python. According to the official documentation, NumPy supports nothing but the array data type and most basic operations: indexing, sorting, reshaping, basic elementwise functions, etc. • SciPy supports everything in NumPy but also adds new features not existing in NumPy. We can imagine that NumPy is a subset of SciPy. • Let`s explore what is in SciPy. SciPy NumPy
27. 27. SciPy • SciPy contains a collection of algorithms and functions based on NumPy. User can use high-level commands to perform complex operations. • SciPy is organized into a number of subpackages.
28. 28. SciPy for Image Processing • SciPy provides modules for working with images from reading, processing, and saving an image. • This example applies the Sobel edge detector to an image using SciPy.
29. 29. References • SciPy • https://docs.scipy.org/doc/scipy/reference • NumPy • https://docs.scipy.org/doc/numpy/reference • Matplotlib • https://matplotlib.org/contents.html