×

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

Unit Testing in Python

The process of testing whether a particular unit is working properly or not is called “UNIT TESTING”. A unit test will check small components in your application. The first and...

7 minutes read.

How to create a DataFrames in Python

How to create a DataFrames in Python Data Frame is a data structure in which data is stored in tabular form. They can also be referred as two-dimensional collection of data. Various...

5 minutes read.

Python filter() function

Python filter() function The filter() function constructs an iterator from those elements of iterable for which the parameter ‘function’ returns a Boolean value true. Syntax filter(function, iterable) Parameter function: This parameter represents a function to be run for each item in the...

1 minute read.

Python exit commands

exit(), quit(), sys.exit(), os._exit() In this tutorial, we will study exit commands used in the Python programming language. Python is undoubtedly the choice of programmer and this is because of the in-built...

3 minutes read.

Python Program to Find the Greatest Among Three Numbers

Python Program to find the greatest among three numbers We have many approaches to get the largest of three numbers, and here we will discuss a few of them. This python...

2 minutes read.

Managing Multiple Python Versions With pyenv

Introduction If you had ever wished to assist to an application that makes use of several different Python versions but weren't sure whether you would quickly test them all? Do you...

4 minutes read.

Python Namespace

In python, the namespace is a very important concept that should be understood before using any function or variables. When we write code, we often use variables, libraries, functions, modules, etc....

4 minutes read.

Falcon Python

Introduction of Python Python is the fastest and the smartest programming language and it is an object oriented language. Python has libraries that can be importedeasily and perform many operations; to...

3 minutes read.

What is a Script in Python

Have you ever heard that Python is a scripting language? Or when people address a Python program file as a script? Besides programming, script generally means "a written story for...

3 minutes read.

Hog Descriptor Opencv Python

Python programming language: 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...

3 minutes read.

Python enumerate() function

Python enumerate() function The enumerate() function in Python takes a collection (e.g. a tuple) and returns it as an enumerate object. Syntax: enumerate(iterable, start=0) Parameter Iterable:  This parameter represents an iterable object start:    This parameter represents a number defining...

1 minute read.

How to write a program in python?

How to write a program in python? In python, writing programs is not a big deal. What we need to work on is our logic and some basic rules of this...

4 minutes read.

Working with files in Python

Python is an object-oriented high-level programming language. Python has dynamic semantics and has high-level built-in data structures which support dynamic typing and dynamic binding. Python provides rapid development. It has an...

5 minutes read.

Python Graph

Python Graph: In Computer Science and Mathematics, a Graph is a pictorial representation of a group of objects or elements where some elements are connected using the links. A graph...

5 minutes read.

How to Install Numpy in PyCharm

What is PyCharm? JetBrains created the hybrid platform known as PyCharm as a Python IDE. The Python IDE PyCharm is used by some major companies, including Twitter, Facebook, Amazon, and many...

4 minutes read.

Get Bounding Box Co-ordinates Python

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....

6 minutes read.

Python String join() method

Python String join() method The String.join() method in Python concatenates each element of an iterable (such as list, string and tuple) to the given string and returns the concatenated string. Syntax string.join(seq) Parameter Seq: This...

1 minute read.

Python Program to Convert Decimal into Binary, Octal, and Hexadecimal

Python Program to Convert Decimal into Binary, Octal, and Hexadecimal We know that the most widely used number system is a decimal system, but the computer only understands binary values. The...

2 minutes read.

Important Difference between Python 2.x and Python 3.x with Example

The comparison between Python 2 and Python 3 is given in the article that follows. Python is a computer language that can perform more tasks than other languages and is...

5 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.