×

Python Scikit-image | Image Processing Using Scikit-Image

What is Image Processing?

The world is defined with images and, every image has its different specialties. An image can contain much-needed information that can be helpful in various ways.

The process by which we can obtain the information of an image is known as Image Processing.

In today's scenario, Image processing has a broad range of applications in various fields. Image processing enables us to manipulate and transform lots of images at a single time to obtain useful information from them.

For image processing, One of the popularly utilized programming languages is Python. Python includes very effective libraries and tools which help in obtaining the information of images in image processing.

The most popular image processing libraries used are: 

OpenCV, Python Imaging Library (PIL)/Pillow, Scikit-image, Numpy, Mahotas.

Python Scikit-image

scikit-image is a Python package that is assigned for image processing in Python and it uses NumPy arrays. For image processing, it is a set of algorithms.

scikit-image is used for various image processing tasks and it also works with Numpy and SciPy in Python image processing.

Here, we will discuss various useful techniques for image processing using scikit-image.

Features of scikit-image

  • It is a very simple and light image processing tool.
  • it is built above NumPy, matplotlib and, SciPy.
  • Everyone can access and reuse it.
  • It is open-source and industrially usable - BSD license.

Installing scikit-image

We have to install Numpy and SciPy before installing scikit-image. it can be easily installed using pip.

Syntax:

pip install –U scikit-image

Reading Images

Importing images in Python using skimage is the very first step in image processing using scikit-image.

The image is stored in form of numbers when it is read using scikit-image. The numbers are defined as pixels and also intensity of the image is defined by using these numbers.

Example:

fromskimage import data
 camera = data.camera()
  
  # An image with 512 rows
  # and 512 columns
 type(camera)
  
 print(camera.shape) 

Output:

 numpy.ndarray
 (512, 512) 

Importing images

The data module consists of various sample images in the scikit-image package. here, we can import an image to work with some image operations. for an instance, we always don't need to import images externally we can load images from which provided by the package.

Example:

# Python3 program to process 
 # images using skikit-image
 importos
   
 # importing io from skimage
 importskimage
 fromskimage import io
   
 # way to load image from file
 file = os.path.join(skimage.data_dir, 'astro.jpg')
   
   
 cars = io.imread(file)
   
 # way to show the input image
 io.imshow(astro)
 io.show()
 

Output:

Python Scikit-image | Image Processing Using Scikit-Image

Read Images from the System

We can read images from the system with the imread function.

Example:

importmatplotlib.pyplot as plt
 %matplotlib inline
  
 image = imread('car.jpg')
 imshow() 

Output:

Python Scikit-image | Image Processing Using Scikit-Image

Explanation –

With the imread function, we can use the as_gray parameter to reading images in grayscale mode. we just need to set the as_gray parameter to true.

Example:

 from skimage.io import imread, imshow
  
 importmatplotlib.pyplot as plt
 %matplotlib inline
  
 image_gray = imread('images.jpeg', as_gray=True)
 imshow(image_gray) 

Output:

Python Scikit-image | Image Processing Using Scikit-Image

Note: The image can be viewed with imshow function but the image is stored in the form of numbers matrix.

Example:

 image_gray = imread('images.jpeg', as_gray=True)
  
 print(image_gray.shape)
  
 print(image_gray) 

Output:

 (258, 195)
 [[0.73586314 0.77115725 0.7907651 ... 0.11822745 0.11822745 0.11430588]
  [0.65743176 0.70056902 0.72017686 ... 0.11822745 0.11430588 0.11430588]
  [0.41401176 0.45714902 0.48067843 ... 0.11430588 0.11430588 0.11038431]
  ...
  [0.73491725 0.73491725 0.73491725 ... 0.42055725 0.42055725 0.42055725]
  [0.72594314 0.72986471 0.72986471 ... 0.41750667 0.41750667 0.41750667]
  [0.72594314 0.72986471 0.72986471 ... 0.41750667 0.41750667 0.41750667]] 

Changing the format of the image

We can convert the format of an image into any other format. like, if we want to convert the image format from RGB to HSV we have to use rgb2hsv.

Example: 2

 fromskimage.color import rgb2hsv
 img = imread('images.jpeg')
 img_new = rgb2hsv(img)
  
 plt.subplot(121), imshow(img)
 plt.title('RGB Format') 
  
 plt.subplot(122), imshow(img_new)
 plt.title('HSV Format') 
  
 plt.show() 

Output:

Python Scikit-image | Image Processing Using Scikit-Image

Resizing images

We can also resize the images using resize function in scikit-image by giving the required dimensions of the new image to the input image.

Example:

 
 fromskimage.transform import resize
 img = imread('city.jpeg')
 #resize image
 img_resized = resize(img, (300, 300))
  
 #plot images
 plt.subplot(121), imshow(img)
 plt.title('Original Image')
 plt.subplot(122), imshow(img_resized)
 plt.title('Resized Image')
 plt.show() 

Output:

Python Scikit-image | Image Processing Using Scikit-Image

Rotating an image

The rotate() function is used to resizing the images by defining the required angle to the image.

Example: 

 fromskimage.transform import rotate
 image = imread('car.png')
  
 image_rotated = rotate(image, angle=45)
 imshow(image_rotated) 

Output:

Python Scikit-image | Image Processing Using Scikit-Image

Changing the Image Brightness

The adjust_gamma()function is used to alter the brightness of the image and the method used by this function is called gamma correlation.

Here, for darker images, gamma should greater than 1, and for brighter images, gamma should less than 1.

Example:

 fromskimage import exposure
  
 #adjusting brightness
 image = imread('basket.jpeg')
 image_bright = exposure.adjust_gamma(image, gamma=0.5,gain=1)
 image_dark = exposure.adjust_gamma(image, gamma=1.5,gain=1)
  
 # plotting images
 plt.subplot(131), imshow(image)
 plt.title('Original Image')
  
 plt.subplot(132),imshow(image_bright)
 plt.title('Bright Image')
  
 plt.subplot(133),imshow(image_dark)
 plt.title('Dark Image')
  
 plt.show() 

Output:

Python Scikit-image | Image Processing Using Scikit-Image

Conclusion

In this article, you have seen the different image processing methods in Python scikit-image library. Now, you can easily perform the image processing techniques with scikit-image.


Related Topics

How to Create an Array in Python?

How to Create an Array in Python In the previous article, we have discussed how to declare an array in Python. So, let's have a quick revision of that, and then we...

5 minutes read.

How to slice a list in python

When working with lists, we face situations where we may need a part of the list from one index to the other. Slicing is one of the simpler ways to...

5 minutes read.

Python Ways to find nth occurrence of substring in a string

Introduction In Python, a string is a collection of characters that can be employed to conduct additional operations. In Python, a substring is a group of characters that are a part...

4 minutes read.

Idle python download for Windows

Here, we will be discussing how to get the answer to all questions related to installing Python on Windows. What is IDLE? Integrated Development and Learning Environment, or IDLE, is a shorthand....

3 minutes read.

OS Module in Python

What is a module? The Modules are the kind of files that contains python statements and definitions. The module is known by the name of the file followed by the suffix...

8 minutes read.

Checking whether a String Contains a Set of Characters in python

In this tutorial, we will learn how to examine or check whether a string contains any set of characters or a substring and if it contains, we will learn how...

6 minutes read.

Python Euclidean Distance

Euclidean distance is the distance between two points with whatever of dimensions. We are using NumPy library to find and calculate the Euclidean distance. The NumPy library is used for...

1 minute read.

Python Key Error

What is an Error? Errors are nothing but problems in the program which occur in a program code, and this will stop the execution of the program. It is also called...

6 minutes read.

Python Set symmetric_difference() method

Python Set symmetric_difference() method The set.symmetric_difference() method returns a new set, which is the symmetric difference of two sets. The returned set contains only the unique items and, hence, deleting the common elements of...

2 minutes read.

Python ascii() Function

Python ascii() Function The ascii() function returns a readable version of any object (Strings, Tuples, Lists, etc). This function will replace any non-ascii characters with escape characters. Syntax ascii(object) Parameter object:  An object, like String, List, Tuple, Dictionary, etc. Return This...

1 minute read.

How to get Time in seconds in Python

Python's time module source shows that are based on time. The time() method is used by developers and returns the current time as a UNIX timestamp. A UNIX timestamp is...

4 minutes read.

Python bytearray()

Python bytearray() Class The bytearray() class is used to return a bytearray object which is an array of the specified bytes. It gives a mutable sequence of integers in the range 0...

1 minute read.

Python String split() method

The string.split() method in Python splits a string into a list and returns a list of the words in the string. If the parameter maxsplit is given, at most maxsplit splits are done. If maxsplit is...

2 minutes read.

Problem-solving with algorithm and data structures using Python

What is problem-solving? There is no universal method for solving problems. It's frequently a special process that balances your immediate and long-term goals with your available resources. However, several models emphasise...

3 minutes read.

apply() function in python

Pandas: Pandas is a library in python. It is an open source package in python. Pandas in python are used for data cleaning and data analysis. Data frame mainly consists of...

3 minutes read.

Python Algorithms

A quote goes, "A goal without a plan is just a wish." To achieve anything in life, we can't simply go for it without making a plan and sticking to...

4 minutes read.

Python List Size

Introduction The list data type in Python is an ordered, flexible collection. A list may also contain duplicate entries. To get the size of any object, use the len() function in...

6 minutes read.

Python Line Break

Introduction In this tutorial, you will learn line breaks in python.In Python, the new line character is used to indicate the start of a new line and the end of an...

5 minutes read.

Python Support

Python Python is an interactive and more accessible language than any other programming language. The python programming language uses a variety of libraries to perform the operations in a faster way....

3 minutes read.

Python Parallel Processing

By performing more jobs concurrently, your software may complete more tasks in a shorter amount of time. These aid in solving major issues. The following subjects will be covered in...

2 minutes read.