Detailed explanation of python Digital Image Processing advanced filter code, python Digital Image Processing
This article provides many filtering methods, which are placed in the filters. rank submodule.
These methods require you to set the shape and size of the filter, so you need to import the morphology module to set.
1. autolevel
This word is translated into automatic color order in photoshop, and the image is filtered and graded using a local histogram.
The filter partially stretches the histogram of the gray pixel value to cover the entire pixel value range.
Format: skimage. filters. rank. autolevel (image, selem)
Selem represents a structured element used to set a filter.
From skimage import data, colorimport matplotlib. pyplot as pltfrom skimage. morphology import diskimport skimage. filters. rank as sfrimg = color. rgb2gray (data. lena () auto = sfr. autolevel (img, disk (5) # plt, a circular filter with a radius of 5. figure ('filters ', figsize = (8, 8) plt. subplot (121) plt. title ('origin image') plt. imshow (img, plt. cm. gray) plt. subplot (122) plt. title ('filted image') plt. imshow (auto, plt. cm. gray)
2. bottomhat and tophat
Bottomhat: this filter first calculates the morphological close operation of the image, and then subtract the result value from the original image, a bit like a black hat operation.
Bottomhat: this filter first calculates the Morphological Open Operation of the image, and then subtract the result value from the original image, a bit like a white hat operation.
Format:
Skimage. filters. rank. bottomhat (image, selem)
Skimage. filters. rank. tophat (image, selem)
Selem represents a structured element used to set a filter.
The following is an example of bottomhat Filtering:
From skimage import data, colorimport matplotlib. pyplot as pltfrom skimage. morphology import diskimport skimage. filters. rank as sfrimg = color. rgb2gray (data. lena () auto = sfr. bottomhat (img, disk (5) # plt, a circular filter with a radius of 5. figure ('filters ', figsize = (8, 8) plt. subplot (121) plt. title ('origin image') plt. imshow (img, plt. cm. gray) plt. subplot (122) plt. title ('filted image') plt. imshow (auto, plt. cm. gray)
3. enhance_contrast
Contrast enhancement. Find the maximum and minimum values of the local area, and check whether the pixel value of the current point is the closest to the maximum or minimum value, and then replace it with the maximum or minimum value.
Function: enhance_contrast (image, selem)
Selem represents a structured element used to set a filter.
From skimage import data, colorimport matplotlib. pyplot as pltfrom skimage. morphology import diskimport skimage. filters. rank as sfrimg = color. rgb2gray (data. lena () auto = sfr. enhance_contrast (img, disk (5) # circular filter plt with a radius of 5. figure ('filters ', figsize = (8, 8) plt. subplot (121) plt. title ('origin image') plt. imshow (img, plt. cm. gray) plt. subplot (122) plt. title ('filted image') plt. imshow (auto, plt. cm. gray)
4. entropy
Partial entropy is calculated using the logarithm of base 2. This function performs binary encoding on the gray value distribution in the local area and returns the minimum value of the encoding.
Function Format: entropy (image, selem)
Selem represents a structured element used to set a filter.
From skimage import data, colorimport matplotlib. pyplot as pltfrom skimage. morphology import diskimport skimage. filters. rank as sfrimg = color. rgb2gray (data. lena () dst = sfr. entropy (img, disk (5) # plt, a circular filter with a radius of 5. figure ('filters ', figsize = (8, 8) plt. subplot (121) plt. title ('origin image') plt. imshow (img, plt. cm. gray) plt. subplot (122) plt. title ('filted image') plt. imshow (dst, plt. cm. gray)
5. equalize
Balanced filtering. Use the local histogram to perform balanced filtering on the image.
Function Format: equalize (image, selem)
Selem represents a structured element used to set a filter.
From skimage import data, colorimport matplotlib. pyplot as pltfrom skimage. morphology import diskimport skimage. filters. rank as sfrimg = color. rgb2gray (data. lena () dst = sfr. equalize (img, disk (5) # plt, a circular filter with a radius of 5. figure ('filters ', figsize = (8, 8) plt. subplot (121) plt. title ('origin image') plt. imshow (img, plt. cm. gray) plt. subplot (122) plt. title ('filted image') plt. imshow (dst, plt. cm. gray)
6. gradient
Returns the partial gradient value (for example, the maximum-Minimum value) of the image. This gradient value is used to replace all the pixel values in the region.
Function Format: gradient (image, selem)
Selem represents a structured element used to set a filter.
From skimage import data, colorimport matplotlib. pyplot as pltfrom skimage. morphology import diskimport skimage. filters. rank as sfrimg = color. rgb2gray (data. lena () dst = sfr. gradient (img, disk (5) # plt, a circular filter with a radius of 5. figure ('filters ', figsize = (8, 8) plt. subplot (121) plt. title ('origin image') plt. imshow (img, plt. cm. gray) plt. subplot (122) plt. title ('filted image') plt. imshow (dst, plt. cm. gray)
7. Other filters
There are many filtering methods. I will not explain them in detail here, but only the core code is provided. All function calling methods are the same.
Maximum Filter (maximum): returns the maximum value of the image's local region. This maximum value is used to replace all pixels in the region.
dst =sfr.maximum(img, disk(5))
Minimum Filter: returns the minimum value in the local area of the image. This minimum value is used to replace all pixels in the area.
dst =sfr.minimum(img, disk(5))
Mean Filter (mean): return the mean value in the image's local region. Use this mean value to replace all pixels in the region.
dst =sfr.mean(img, disk(5))
Median: returns the median value in the local area of the image. The median value replaces all pixels in the area.
dst =sfr.median(img, disk(5))
Modal filter (modal): return the modal value in the partial area of the image. Use this value to replace all pixels in the area.
dst =sfr.modal(img, disk(5))
Otsu threshold filtering (otsu): returns the otsu threshold value in the image's local region. This value is used to replace all pixels in the region.
dst =sfr.otsu(img, disk(5))
Threshold filtering: Compare each pixel value in the image's local region with the mean value. If the value is greater than the threshold value, the value is 1. If the value is less than the threshold value is 0, a two-value image is obtained.
dst =sfr.threshold(img, disk(5))
Subtract_mean: subtract the mean value from each pixel in the local area.
dst =sfr.subtract_mean(img, disk(5))
Sum: calculates the sum of pixels in a local region. This value is used to replace all pixels in the region.
dst =sfr.sum(img, disk(5))
Summary
The above is all the details about the advanced filter code for python digital image processing. I hope it will be helpful to you. Interested friends can continue to refer to this site:
Example of turtle plotting in Python
Python uses opencv to cut images in batches
Python fun project-pornographic image recognition code sharing
If you have any shortcomings, please leave a message.