- Trending Categories
- Data Structure
- Operating System
- MS Excel
- C Programming
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Region and Edge Based Segmentation
Image Segmentation is the process of dividing a digital image into smaller groups so that processing and analyzing the larger images becomes easier and simpler. Region and Edge-based segmentation are different types of Image Segmentation.
Before diving into Region and Edge based Segmentation, let us have a brief overview of how segmentation is done.
In simpler terms, segmentation is the process of assigning specific labels to pixels in an image. A group of pixels with the same label become a segment of the larger image.
For example, below are two images with their segmentation.
In the first image, the picture of the horse is a single segment separated from its surrounding.
In the second image, the road on the left side is divided digitally into different segments on the right side and is shown with different colors.
Thus, this process reduces the complexity of computation and processing, especially for image processing and AI algorithms, since now we can work on segment levels rather than processing the whole image at once which can be highly intensive on computation and a strain on resources.
Now, that we have learned some basics of segmentation, let us move on to Region and Edge- based segmentation.
Region Based Segmentation
This process involves dividing the image into smaller segments that have a certain set of rules. This technique employs an algorithm that divides the image into several components with common pixel characteristics. The process looks out for chunks of segments within the image. Small segments can include similar pixes from neighboring pixels and subsequently grow in size. The algorithm can pick up the gray level from surrounding pixels.
They are two types
Region growing − This method recursively grows segments by including neighboring pixels with similar characteristics. It uses the difference in gray levels for gray regions and the difference in textures for textured images.
Region splitting − In this method, the whole image is considered a single region. Now to divide the region into segments it checks for pixels included in the initial region if they follow the predefined set of criteria. If they follow similar rules they are taken into one segment.
Edge Based Segmentation
In Edge Based segmentation, the boundaries or edges of the images are significantly different from each other and also from the background of the image. This fact is used to do edge detection on images with different levels of intensities and discontinuity on edges. Edges have quite a good amount of information about the image. Two common tasks in this method are edge detection and edge linking. In edge detection, the boundary is identified. Edge linking as the name suggests involves linking one edge with another. A common technique used to detect contours is thresholding.
Now, let us look into a code implementation of edge and region segmentation.
Code Implementation – Edge-based
import numpy as np import matplotlib.pyplot as plt from skimage import data from skimage.feature import canny from scipy import ndimage as ndi coins = data.coins() h = np.histogram(coins, bins=np.arange(0, 256)) figure, (ax_1) = plt.subplots() ax_1.imshow(coins, cmap=plt.cm.gray) edges = canny(coins/255.) figure, axis = plt.subplots(figsize=(6, 4)) axis.imshow(edges, cmap=plt.cm.gray) axis.axis('off') axis.set_title('Detect canny') fc = ndi.binary_fill_holes(edges) figure, axis = plt.subplots(figsize=(6, 4)) axis.imshow(fc, cmap=plt.cm.gray) axis.axis('off') axis.set_title('hole fill')
Text(0.5, 1.0, 'hole fill')
Code Implementation – Region-based
from skimage.filters import sobel import numpy as np import matplotlib.pyplot as plt from skimage import data from skimage.feature import canny from scipy import ndimage as ndi coins = data.coins() elmap = sobel(coins) figure, axis = plt.subplots(figsize=(6, 4)) axis.imshow(elmap, cmap=plt.cm.gray) axis.axis('off') axis.set_title('map elevation')
Text(0.5, 1.0, 'map elevation')
Region and Edge-based segmentation are useful in modern algorithms which rely on Image and video-based operations. These are simple techniques but highly powerful.
- Related Articles
- Difference between Paging and Segmentation
- Difference between Demand Paging and Segmentation
- What is Segmentation?
- Fashion Consumer Segmentation
- Difference Between Paging and Segmentation in OS
- Unleash the Power of AI with Cutting-Edge Cloud-Based Machine Learning Solutions
- What is Market Segmentation?
- Image Segmentation by Clustering
- Overlay an image segmentation with Numpy and Matplotlib
- Geographical Segmentation of Consumers and Examples of Renowned Companies
- Paragraph Segmentation using machine learning
- The coldest region on the earth is the(a) polar region(b) tropical region(c) temperature region(d) coastal region
- Advantage and Disadvantage of Edge Computing
- IoT edge computing and data sustainability
- Edge Computing Security Risk and Challenges