×

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

Assignment Operators in Python

The prime usage of Assignment Operators is to assign values to variables. These are taken into account to do operations on values and variables. There are some special symbols in python...

4 minutes read.

Python If-else statement

In real life, there are situations where we have to make decisions for a particular circumstance and based on those decisions, and we plan our next move. The same thing...

4 minutes read.

Python Dictionary clear() method

Python Dictionary clear() method The dictionary.clear() method in Python removes all the elements from a dictionary. Syntax dictionary.clear() Parameter NA Return None Example 1 # Python program explaining # the dictionary.clear() method # initialising the dictionary fruits =...

1 minute read.

Difference between Yield and Return in Python

Python yield statement The generators are defined by using the yield statement in Python. Generally, it converts a normal Python function into a generator.  The yield statement hauls the function and returns...

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

How to import pandas in python

How to Install Pandas in Python Python is a vast ocean of libraries, modules, and different functions. It has a solution for almost everything. Using Python, we can simplify even a...

3 minutes read.

Assertion error in python

In this article, we will discuss assertions in the python programming language. Assertion: Assertions are a way of telling a program to test a certain condition and trigger an error if the...

3 minutes read.

Word frequency Python

Word frequency Python In this tutorial, we will write the Python program to count the occurrence of a word (word frequency) in a given sentence. We will learn all the approaches...

5 minutes read.

Exponentiation in Python

What is an Exponent in Python? Exponent is a fundamental mathematical concept that is used in many different areas, such as engineering, physics, and finance. In mathematics, an exponent is a...

4 minutes read.

Python Breakpoint

Introduction In Python 3.7, a brand-new created function called breakpoint() was added. Due to the close relationship between both the executable and the code of a debugging component, debugging Python programming...

4 minutes read.

Anonymous/Lambda Function in Python

Lambda keyword is used to declare an Anonymous function, i.e. a function that does not have any name. It is also called Anonymous functions. In python, normal functions are defined...

3 minutes read.

Python Skyline

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.

Run exec python from PHP

PHP (which is a recursive abbreviation for PHP Hypertext Preprocessor) is one of the most broadly involved web improvement innovations on the planet. PHP code utilized for creating sites and...

4 minutes read.

How to Download Python

How to Download Python Python is the most renowned programming language and developers across the globe are working on projects that are made using Python and its libraries. Here we will...

4 minutes read.

Python List index() method

Python List index() method The list.index () method in Python returns the position at the first occurrence of the specified value. Syntax list.index(x[, start[, end]]) Parameter element – This parameter represents the element whose lowest index will be returned. start (Optional)...

2 minutes read.

Convert Float to Int in Python using Pandas

Introduction To play with huge amounts of data, in python we require a tool. The tool which is available in Python is pandas. A panda is an open-source library. It is...

4 minutes read.

Create Table Using PyQt5 in Python

PyQt5: PyQt5 is one of several solutions that Python offers for creating GUI applications. Cross-platform GUI toolkit PyQt5 is a collection of Python interfaces for Qt version 5. With this library's...

4 minutes read.

Python String swapcase() method

Python String swapcase() method The string.swapcase() method in Python returns a copy of the string with uppercase characters converted to lowercase and vice versa. Syntax string.swapcase() Parameter NA Return This method returns a copy of the string...

1 minute read.

Python Program to Find the gcd of Two Numbers

Introduction Greatest Common Divisor is the full form of gcd. The greatest common divisor, or GCD, of two numbers, is a value that can exactly divide the two digits and is...

5 minutes read.

GUI to extract lyrics from a song Using Tkinter in Python

GUI: A graphical interface (GUI) is a user interface that lets users interact with electronic devices like computers and smartphones by using menus, icons, and other visual cues (graphics). In contrast...

4 minutes read.