Home >Backend Development >Python Tutorial >Image Processing Using Python

Image Processing Using Python

Joseph Gordon-Levitt
Joseph Gordon-LevittOriginal
2025-03-03 10:18:13766browse

Image processing with Python's scikit-image library: A practical guide

A 1911 newspaper editor famously stated, "Use a picture. It's worth a thousand words." This highlights the crucial role images play in communication, from everyday photographs to specialized medical scans like MRIs and ultrasounds. Image acquisition methods vary widely—dermatoscopes for skin cancer images, digital cameras for personal photos, and smartphones for casual snapshots. However, image imperfections such as blurring, often stemming from the acquisition process, can arise. What then? When dealing with pre-existing medical images, re-imaging isn't an option. This is where image processing techniques become invaluable.

Image processing, as defined by Oxford Dictionaries, is "the analysis and manipulation of a digitized image, especially in order to improve its quality." This digital manipulation requires the use of programming languages, and Python, with its powerful libraries, is an excellent choice. This tutorial demonstrates basic image processing tasks using Python's scikit-image library.

Grayscaling an Image

The scikit-image library simplifies image manipulation. We'll start by converting a color image to grayscale. The library's imread() function loads the image, and rgb2gray() converts it to grayscale using a luminance calculation:

L = 0.2125*R 0.7154*G 0.0721*B

Here's the Python code:

from skimage import io, color

img = io.imread('pizzeria.png')
img_grayscale = color.rgb2gray(img)

io.imsave('gray-pizzeria.png', img_grayscale)
io.imshow(img_grayscale)
io.show()

The resulting grayscale image:

Image Processing Using Python

Applying Filters

Image filtering enhances images through operations like edge enhancement, sharpening, and smoothing. We'll apply the Sobel filter for edge detection:

from skimage import io, filters

img = io.imread('pizzeria.png')
sobel_a = filters.sobel(img)

io.imsave('sobel-filter.png', sobel_a)

(Note: A warning might appear if the image isn't 2D; ensure proper image format.)

The Sobel-filtered image:

Image Processing Using Python

Other filters, like the Gaussian filter for blurring, offer further image manipulation capabilities. The standard deviation parameter controls the blurring intensity.

from skimage import io, color, filters

img = io.imread('pizzeria.png')
gaussian_a = filters.gaussian(img, 10)
gaussian_b = filters.gaussian(img, [20, 1])

io.imsave('gaussian-filter-10.png', gaussian_a)
io.imsave('gaussian-filter-20-1.png', gaussian_b)

Gaussian filter results (σ=10 and σ=[20,1]):

Image Processing Using Python Image Processing Using Python

Thresholding

Thresholding converts a grayscale image into a binary image (black and white). We use the mean grayscale value as the threshold:

from statistics import mean
from skimage import io, filters, util

img = io.imread('pizzeria.png', as_gray=True)

mean_threshold = filters.threshold_mean(img)
print(mean_threshold)

binary = img > mean_threshold
binary = util.img_as_ubyte(binary)

io.imsave('threshold-filter.png', binary)

The thresholded image:

Image Processing Using Python

Conclusion

scikit-image offers a wide range of image processing capabilities. Explore its extensive documentation for more advanced techniques. For those interested in learning Python, comprehensive tutorials are readily available.

The above is the detailed content of Image Processing Using Python. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Image Filtering in PythonNext article:Image Filtering in Python