
- Scikit Image – Introduction
- Scikit Image - Image Processing
- Scikit Image - Numpy Images
- Scikit Image - Image datatypes
- Scikit Image - Using Plugins
- Scikit Image - Image Handlings
- Scikit Image - Reading Images
- Scikit Image - Writing Images
- Scikit Image - Displaying Images
- Scikit Image - Image Collections
- Scikit Image - Image Stack
- Scikit Image - Multi Image
- Scikit Image - Data Visualization
- Scikit Image - Using Matplotlib
- Scikit Image - Using Ploty
- Scikit Image - Using Mayavi
- Scikit Image - Using Napari
- Scikit Image - Color Manipulation
- Scikit Image - Alpha Channel
- Scikit Image - Conversion b/w Color & Gray Values
- Scikit Image - Conversion b/w RGB & HSV
- Scikit Image - Conversion to CIE-LAB Color Space
- Scikit Image - Conversion from CIE-LAB Color Space
- Scikit Image - Conversion to luv Color Space
- Scikit Image - Conversion from luv Color Space
- Scikit Image - Image Inversion
- Scikit Image - Painting Images with Labels
- Scikit Image - Contrast & Exposure
- Scikit Image - Contrast
- Scikit Image - Contrast enhancement
- Scikit Image - Exposure
- Scikit Image - Histogram Matching
- Scikit Image - Histogram Equalization
- Scikit Image - Local Histogram Equalization
- Scikit Image - Tinting gray-scale images
- Scikit Image - Image Transformation
- Scikit Image - Scaling an image
- Scikit Image - Rotating an Image
- Scikit Image - Warping an Image
- Scikit Image - Affine Transform
- Scikit Image - Piecewise Affine Transform
- Scikit Image - ProjectiveTransform
- Scikit Image - EuclideanTransform
- Scikit Image - Radon Transform
- Scikit Image - Line Hough Transform
- Scikit Image - Probabilistic Hough Transform
- Scikit Image - Circular Hough Transforms
- Scikit Image - Elliptical Hough Transforms
- Scikit Image - Polynomial Transform
- Scikit Image - Image Pyramids
- Scikit Image - Pyramid Gaussian Transform
- Scikit Image - Pyramid Laplacian Transform
- Scikit Image - Swirl Transform
- Scikit Image - Morphological Operations
- Scikit Image - Erosion
- Scikit Image - Dilation
- Scikit Image - Black & White Tophat Morphologies
- Scikit Image - Convex Hull
- Scikit Image - Generating footprints
- Scikit Image - Isotopic Dilation & Erosion
- Scikit Image - Isotopic Closing & Opening of an Image
- Scikit Image - Skelitonizing an Image
- Scikit Image - Morphological Thinning
- Scikit Image - Masking an image
- Scikit Image - Area Closing & Opening of an Image
- Scikit Image - Diameter Closing & Opening of an Image
- Scikit Image - Morphological reconstruction of an Image
- Scikit Image - Finding local Maxima
- Scikit Image - Finding local Minima
- Scikit Image - Removing Small Holes from an Image
- Scikit Image - Removing Small Objects from an Image
- Scikit Image - Filters
- Scikit Image - Image Filters
- Scikit Image - Median Filter
- Scikit Image - Mean Filters
- Scikit Image - Morphological gray-level Filters
- Scikit Image - Gabor Filter
- Scikit Image - Gaussian Filter
- Scikit Image - Butterworth Filter
- Scikit Image - Frangi Filter
- Scikit Image - Hessian Filter
- Scikit Image - Meijering Neuriteness Filter
- Scikit Image - Sato Filter
- Scikit Image - Sobel Filter
- Scikit Image - Farid Filter
- Scikit Image - Scharr Filter
- Scikit Image - Unsharp Mask Filter
- Scikit Image - Roberts Cross Operator
- Scikit Image - Lapalace Operator
- Scikit Image - Window Functions With Images
- Scikit Image - Thresholding
- Scikit Image - Applying Threshold
- Scikit Image - Otsu Thresholding
- Scikit Image - Local thresholding
- Scikit Image - Hysteresis Thresholding
- Scikit Image - Li thresholding
- Scikit Image - Multi-Otsu Thresholding
- Scikit Image - Niblack and Sauvola Thresholding
- Scikit Image - Restoring Images
- Scikit Image - Rolling-ball Algorithm
- Scikit Image - Denoising an Image
- Scikit Image - Wavelet Denoising
- Scikit Image - Non-local means denoising for preserving textures
- Scikit Image - Calibrating Denoisers Using J-Invariance
- Scikit Image - Total Variation Denoising
- Scikit Image - Shift-invariant wavelet denoising
- Scikit Image - Image Deconvolution
- Scikit Image - Richardson-Lucy Deconvolution
- Scikit Image - Recover the original from a wrapped phase image
- Scikit Image - Image Inpainting
- Scikit Image - Registering Images
- Scikit Image - Image Registration
- Scikit Image - Masked Normalized Cross-Correlation
- Scikit Image - Registration using optical flow
- Scikit Image - Assemble images with simple image stitching
- Scikit Image - Registration using Polar and Log-Polar
- Scikit Image - Feature Detection
- Scikit Image - Dense DAISY Feature Description
- Scikit Image - Histogram of Oriented Gradients
- Scikit Image - Template Matching
- Scikit Image - CENSURE Feature Detector
- Scikit Image - BRIEF Binary Descriptor
- Scikit Image - SIFT Feature Detector and Descriptor Extractor
- Scikit Image - GLCM Texture Features
- Scikit Image - Shape Index
- Scikit Image - Sliding Window Histogram
- Scikit Image - Finding Contour
- Scikit Image - Texture Classification Using Local Binary Pattern
- Scikit Image - Texture Classification Using Multi-Block Local Binary Pattern
- Scikit Image - Active Contour Model
- Scikit Image - Canny Edge Detection
- Scikit Image - Marching Cubes
- Scikit Image - Foerstner Corner Detection
- Scikit Image - Harris Corner Detection
- Scikit Image - Extracting FAST Corners
- Scikit Image - Shi-Tomasi Corner Detection
- Scikit Image - Haar Like Feature Detection
- Scikit Image - Haar Feature detection of coordinates
- Scikit Image - Hessian matrix
- Scikit Image - ORB feature Detection
- Scikit Image - Additional Concepts
- Scikit Image - Render text onto an image
- Scikit Image - Face detection using a cascade classifier
- Scikit Image - Face classification using Haar-like feature descriptor
- Scikit Image - Visual image comparison
- Scikit Image - Exploring Region Properties With Pandas
Scikit Image - Euclidean Transform
The Euclidean transformation, also known as a rigid transformation, is a specific type of transformation that includes rotation and translation. This transformation preserves the distances between points in a Euclidean space and is often used in image processing and computer vision.
Following are the equations that describe the transformation for a point (x, y) in 2D space:
X = a0 * x - b0 * y + a1 Y = b0 * x + a0 * y + b1
where the homogeneous transformation matrix is −
[[a0 b0 a1] [b0 a0 b1] [0 0 1]]
Pythons Scikit-image library provides the EuclideanTransform class in the transform module to apply Euclidean transformation.
The skimage.transform.EuclideanTransform class
The EuclideanTransform class in the scikit image library provides a convenient way to apply Euclidean transformations to images and other geometric objects.
Syntax
Following is the syntax of this class −
class skimage.transform.EuclideanTransform(matrix=None, rotation=None, translation=None, *, dimensionality=2)
Here are the parameters and attributes of the class −
- matrix: An optional parameter that represents the homogeneous transformation matrix. It should be a (D+1, D+1) array-like object, where D is the dimensionality of the transformation. The matrix defines the specific transformation to be applied.
- rotation: An optional parameter that allows you to specify the rotation angle in radians. It can be a single float value or a sequence of float values. In 2D, it's a single rotation; in 3D, it represents Euler rotation angles.
- translation: An optional parameter that specifies a sequence of float values representing translation along each axis.
- dimensionality: An optional integer parameter that represents the number of dimensions of the transformation.
- params: It is an attribute that stores the homogeneous transformation matrix. It is a (D+1, D+1) array, where D is the dimensionality of the transformation.
Following are the methods of the class −
- estimate(src, dst): This method is used to estimate the transformation based on a set of corresponding points (source and destination coordinates).
- inverse: This method returns a transform object representing the inverse transformation.
The EuclideanTransform class is inherited from the ProjectiveTransform class.
Example
In the following example, a Euclidean transformation is applied to the input image using the transform.EuclideanTransform class from scikit-image, which specifies a rotation of np.pi/12 radians (15 degrees) and a translation of (100, -20) pixels.
import numpy as np import matplotlib.pyplot as plt from skimage import io, transform, img_as_float # Define the EuclideanTransform tform = transform.EuclideanTransform(rotation=np.pi / 12., translation=(100, -20)) # Load an input image image = io.imread('Images/logo.jpg') img = img_as_float(image) # Apply the transformation to the image tf_img = transform.warp(img, tform.inverse) # Plot the original and transformed images side by side fig, axes = plt.subplots(1, 2, figsize=(10, 5)) axes[0].imshow(image) axes[0].set_title('Original Image') axes[0].axis('off') axes[1].imshow(tf_img) axes[1].set_title('Euclidean transformation') axes[1].axis('off') plt.show()
Output
On executing the above program, you will get the following output −

Example
In this example, the Euclidean transformation is defined by directly providing a transformation matrix to the transform.EuclideanTransform constructor.
import numpy as np import matplotlib.pyplot as plt from skimage import io, transform, img_as_float # Define the EuclideanTransform using the full transformation matrix matrix = np.array([[np.cos(np.pi/12), -np.sin(np.pi/12), 100], [np.sin(np.pi/12), np.cos(np.pi/12), -20], [0, 0, 1]]) tform = transform.EuclideanTransform(matrix) # Load an input image image = io.imread('Images/butterfly.jpg') img = img_as_float(image) # Apply the transformation to the image tf_img = transform.warp(img, tform.inverse) # Plot the original and transformed images side by side fig, axes = plt.subplots(1, 2, figsize=(10, 5)) axes[0].imshow(image) axes[0].set_title('Original Image') axes[0].axis('off') axes[1].imshow(tf_img) axes[1].set_title('Euclidean transformation') axes[1].axis('off') plt.show()
Output
On executing the above program, you will get the following output −
