This article was published as a part of the Data Science Blogathon
This article will continue from where the previous article(s) left off. If you would like to follow along from the beginning of the OpenCV tutorial, please navigate to the below articles I have written:
This article will seek to enlighten you about more of the interesting operations that can be performed with images using the OpenCV Library in the Python Programming Language.
Source: Medium.
In order to have maximum takeaways from this informative session, I recommend that you follow along in a Python IDE of your choice. To facilitate the hands-on OpenCV learning experience, we will make use of an image that can be located at this link. Feel free to download the image from the link, or alternatively, you may save the image found below.
Source: Wallpaper Flare.
The first action to perform would be the action of loading the image into our system memory as follows:
import cv2 image = cv2.imread("C:/Users/Shivek/Pictures/cool-backgrounds-nature-1920x1200-wallpaper-preview.jpg", cv2.IMREAD_COLOR) cv2.imshow('Analytics Vidhya Computer Vision- Mountain View', image) cv2.waitKey() cv2.destroyAllWindows()
I will omit lengthy explanations for the above code block as those aspects have been covered in
previous articles. The important points to note are:
Next, we shall attempt to resize the image, specifically, we would reduce the size of the image as follows:
# resize the image to be pixel dimensions 455 by 150 resized_image = cv2.resize(src=image, dsize=(455, 150)) cv2.imshow('Analytics Vidhya Computer Vision- Mountain View', resized_image) cv2.waitKey() cv2.destroyAllWindows()
We make use of the resize() method while passing in the source image (image to be resized) and the desired size of the image in a tuple containing two integer values. The first value represents the number of rows of pixels and the second is the number of columns of pixels. Do not confuse the shape method with the dsize parameter: shape will return to us the rows, columns, and color channels (if any). The dsize parameter will require that we pass in the number of rows, followed by the number of columns.
One may see that upon reducing the image size, we notice that the quality of the resized image seems to have been improved. It is good to know that this, in reality, does not occur- reducing the size of the image does not improve the quality- It simply is due to the nature of the eyes that the image appears sharper. While you look at the resized from a distance, bring your eyes closer to the image, and notice how the image quality degrades (or restores to normal). The explanation for the imperceptible decrease of quality is simple: The more pixels in an image, the clearer the image, hence by reducing the size of the image, we are decreasing the total number of pixels in the image, therefore causing image quality to decrease proportionally.
If one would like to save
the new image (resized image), one would proceed to do so as follows:
# before we begin, let us import the os package import os cv2.imwrite(filename="Mountain View 455x150.png", img=resized_image) print(os.listdir("C:/Users/Shivek/Desktop/Experimenting/Analytics Vidhya Blogathon/")) print("Successfully Saved!")
The explanation for the above code block is as follows:
cv2.imwrite("Mountain View 455x150.png", resized_image)
We make use of the imwrite() function offered by the OpenCV module. The imwrite() method will write the data file to the specified file location on the Hard Disk Drive of your system. This function requires two important parameters:
It is important to know that the imwrite() will overwrite any existing files with the same name in the same folder, without requesting confirmation or overwrite permission.
print(os.listdir("C:/Users/Shivek/Desktop/Experimenting/Analytics Vidhya Blogathon/"))
As one can see, the above line of code makes use of the OS module available in Python Programming Language. This module allows us to interact with our system and its associated aspects and acts much like a Built-In Python Command Prompt for our system.
In this particular line of code, we make use of the listdir() method which will effectively provide a list of the contents of a particular specified directory. This includes any and all files, directories, and sub-directories. A directory is basically a folder. Upon receiving the contents of the specified Directory, we are printing the
information to the console for the user to view.
print("Successfully Saved!")
Upon successfully writing the image to the disk, and printing the contents of the directory, we proceed to print a short message to the screen that says “Successfully Saved!”. This aims to provide assurance to the individual that the image writing process to the disk, has been successful.
As can be seen in the above image, upon successful writing, one will see the new data file in their File Explorer.
The contents of the directory will be seen in the Python IDE Terminal or Console. One will be able to see the new file showing up in the List of Directory Contents that is returned by the os.listdir() method.
Finally, last but not least, the message “Successfully Saved!” will be seen in the Python Console. This will assure us that our writing process has concluded and that too, successfully.
This concludes my article. I do hope that you enjoyed reading through this article, and have learned new concepts about the OpenCV package in Python.
Please feel free to connect with me on LinkedIn.
Thank you for your time.
The media shown in this article are not owned by Analytics Vidhya and are used at the Author’s discretion.