当前位置:网站首页>[200 opencv routines] 99 Modified alpha mean filter
[200 opencv routines] 99 Modified alpha mean filter
2022-07-05 02:30:00 【Xiaobai youcans】
【OpenCV routine 200 piece 】99. Modified alpha mean filter
Welcome to your attention 『OpenCV routine 200 piece 』 series , Ongoing update
Welcome to your attention 『Python Small white OpenCV Learning lessons 』 series , Ongoing update
3.6 Modified alpha mean filter (Modified alpha-mean filter)
The modified alpha mean filter also belongs to statistical sorting filter , The idea is similar to the method of calculating the average score after removing the highest score and the lowest score in the competition .
Make S x y Sxy Sxy Indicates that the center is at the point ( x , y ) (x,y) (x,y) 、 The size is m ∗ n m*n m∗n Rectangular sub window ( Neighborhood ) A set of coordinates , Modified alpha mean filter in S x y Sxy Sxy Defined neighborhood , Delete d The lowest gray value and d The highest gray value , Calculate the remaining pixels g R ( r , c ) g_R(r,c) gR(r,c) The arithmetic mean of is used as the output result , namely :
f ^ ( x , y ) = 1 m n − 2 d ∑ ( r , c ) ∈ S R g R ( r , c ) \hat{f}(x,y) = \frac{1}{mn-2d} \sum _{(r,c) \in S_R} g_R(r,c) f^(x,y)=mn−2d1(r,c)∈SR∑gR(r,c)
d The range of phi is zero [ 0 , m n / 2 − 1 ] [0, mn/2-1] [0,mn/2−1]. choice d The size of has a great influence on the effect of image processing , When d = 0 d=0 d=0 It is simplified as arithmetic average filter , When d = m n / 2 − 1 d=mn/2-1 d=mn/2−1 Reduced to median filter .d When taking other values , It is suitable for dealing with a variety of mixed noise , Such as Gaussian noise and salt and pepper noise .
routine 9.13: Modified alpha mean filter
# 9.13: Modified alpha mean filter (Modified alpha-mean filter)
img = cv2.imread("../images/Fig0507b.tif", 0) # flags=0 Read as grayscale image
img_h = img.shape[0]
img_w = img.shape[1]
m, n = 5, 5
kernalMean = np.ones((m, n), np.float32) # Generate box core
# Edge fill
hPad = int((m-1) / 2)
wPad = int((n-1) / 2)
imgPad = np.pad(img.copy(), ((hPad, m-hPad-1), (wPad, n-wPad-1)), mode="edge")
imgAlphaFilter0 = np.zeros(img.shape)
imgAlphaFilter1 = np.zeros(img.shape)
imgAlphaFilter2 = np.zeros(img.shape)
for i in range(img_h):
for j in range(img_w):
# Neighborhood m * n
pad = imgPad[i:i+m, j:j+n]
padSort = np.sort(pad.flatten()) # Sort the neighborhood pixels by gray value
d = 1
sumAlpha = np.sum(padSort[d:m*n-d-1]) # Delete d Maximum gray value , d Minimum gray value
imgAlphaFilter0[i, j] = sumAlpha / (m*n-2*d) # Arithmetic average the remaining pixels
d = 2
sumAlpha = np.sum(padSort[d:m*n-d-1])
imgAlphaFilter1[i, j] = sumAlpha / (m*n-2*d)
d = 4
sumAlpha = np.sum(padSort[d:m*n-d-1])
imgAlphaFilter2[i, j] = sumAlpha / (m*n-2*d)
plt.figure(figsize=(9, 7))
plt.subplot(221), plt.axis('off'), plt.title("Original")
plt.imshow(img, cmap='gray', vmin=0, vmax=255)
plt.subplot(222), plt.axis('off'), plt.title("Modified alpha-mean(d=1)")
plt.imshow(imgAlphaFilter0, cmap='gray', vmin=0, vmax=255)
plt.subplot(223), plt.axis('off'), plt.title("Modified alpha-mean(d=2)")
plt.imshow(imgAlphaFilter1, cmap='gray', vmin=0, vmax=255)
plt.subplot(224), plt.axis('off'), plt.title("Modified alpha-mean(d=4)")
plt.imshow(imgAlphaFilter2, cmap='gray', vmin=0, vmax=255)
plt.tight_layout()
plt.show()
( At the end of this section )
Copyright notice :
[email protected] Original works , Reprint must be marked with the original link
Copyright 2021 youcans, XUPT
Crated:2022-2-1
Welcome to your attention 『OpenCV routine 200 piece 』 series , Ongoing update
Welcome to your attention 『Python Small white OpenCV Learning lessons 』 series , Ongoing update
【OpenCV routine 200 piece 】01. Image reading (cv2.imread)
【OpenCV routine 200 piece 】02. Image saving (cv2.imwrite)
【OpenCV routine 200 piece 】03. Image display (cv2.imshow)
【OpenCV routine 200 piece 】04. use matplotlib Display images (plt.imshow)
【OpenCV routine 200 piece 】05. The properties of the image (np.shape)
【OpenCV routine 200 piece 】06. Pixel editing (img.itemset)
【OpenCV routine 200 piece 】07. Image creation (np.zeros)
【OpenCV routine 200 piece 】08. Copy of image (np.copy)
【OpenCV routine 200 piece 】09. Image clipping (cv2.selectROI)
【OpenCV routine 200 piece 】10. Image stitching (np.hstack)
【OpenCV routine 200 piece 】11. Split of image channel (cv2.split)
【OpenCV routine 200 piece 】12. Merging of image channels (cv2.merge)
【OpenCV routine 200 piece 】13. The addition of images (cv2.add)
【OpenCV routine 200 piece 】14. The image is added to the scalar (cv2.add)
【OpenCV routine 200 piece 】15. Weighted addition of images (cv2.addWeight)
【OpenCV routine 200 piece 】16. Addition of images of different sizes
【OpenCV routine 200 piece 】17. Gradient switching between two images
【OpenCV routine 200 piece 】18. Mask addition of images
【OpenCV routine 200 piece 】19. The circular mask of the image
【OpenCV routine 200 piece 】20. Bitwise operation of image
【OpenCV routine 200 piece 】21. Image overlay
【OpenCV routine 200 piece 】22. Add non Chinese text to the image
【OpenCV routine 200 piece 】23. Add Chinese text to the image
【OpenCV routine 200 piece 】23. Add Chinese text to the image
【OpenCV routine 200 piece 】24. Affine transformation of image
【OpenCV routine 200 piece 】25. Translation of image
【OpenCV routine 200 piece 】26. The rotation of the image ( Centered on the origin )
【OpenCV routine 200 piece 】27. The rotation of the image ( Centered on any point )
【OpenCV routine 200 piece 】28. The rotation of the image ( Right angle rotation )
【OpenCV routine 200 piece 】29. Image flipping (cv2.flip)
【OpenCV routine 200 piece 】30. Image zooming (cv2.resize)
【OpenCV routine 200 piece 】31. Image pyramid (cv2.pyrDown)
【OpenCV routine 200 piece 】32. Image distortion ( Crosscutting )
【OpenCV routine 200 piece 】33. Composite transformation of image
【OpenCV routine 200 piece 】34. Projection transformation of image
【OpenCV routine 200 piece 】35. Projection transformation of image ( Border filling )
【OpenCV routine 200 piece 】36. Conversion of rectangular coordinates and polar coordinates
【OpenCV routine 200 piece 】37. Gray processing and binary processing of image
【OpenCV routine 200 piece 】38. Inverse color transformation of image ( Image reversal )
【OpenCV routine 200 piece 】39. Linear transformation of image gray
【OpenCV routine 200 piece 】40. Image piecewise linear gray scale transformation
【OpenCV routine 200 piece 】41. Gray scale transformation of image ( Grayscale stratification )
【OpenCV routine 200 piece 】42. Gray scale transformation of image ( Bit plane layering )
【OpenCV routine 200 piece 】43. Gray scale transformation of image ( Logarithmic transformation )
【OpenCV routine 200 piece 】44. Gray scale transformation of image ( Gamma transform )
【OpenCV routine 200 piece 】45. Gray histogram of the image
【OpenCV routine 200 piece 】46. Histogram equalization
【OpenCV routine 200 piece 】47. Image enhancement — Histogram matching
【OpenCV routine 200 piece 】48. Image enhancement — Color histogram matching
【OpenCV routine 200 piece 】49. Image enhancement — Local histogram processing
【OpenCV routine 200 piece 】50. Image enhancement — Histogram statistics image enhancement
【OpenCV routine 200 piece 】51. Image enhancement — Histogram back tracking
【OpenCV routine 200 piece 】52. Image correlation and convolution
【OpenCV routine 200 piece 】53. Scipy Realize image two-dimensional convolution
【OpenCV routine 200 piece 】54. OpenCV Realize image two-dimensional convolution
【OpenCV routine 200 piece 】55. Separable convolution kernel
【OpenCV routine 200 piece 】56. Low pass cartridge filter
【OpenCV routine 200 piece 】57. Low pass Gaussian filter
【OpenCV routine 200 piece 】58. Nonlinear filtering — median filtering
【OpenCV routine 200 piece 】59. Nonlinear filtering — Bilateral filtering
【OpenCV routine 200 piece 】60. Nonlinear filtering — Joint bilateral filtering
【OpenCV routine 200 piece 】61. Guided filtering (Guided filter)
【OpenCV routine 200 piece 】62. Sharpen the image —— Passivation masking
【OpenCV routine 200 piece 】63. Sharpen the image ——Laplacian operator
【OpenCV routine 200 piece 】64. Sharpen the image ——Sobel operator
【OpenCV routine 200 piece 】65. Sharpen the image ——Scharr operator
【OpenCV routine 200 piece 】66. Low pass of image filtering / qualcomm / Band stop / Bandpass
【OpenCV routine 200 piece 】67. Comprehensive application of image enhancement in spatial domain
【OpenCV routine 200 piece 】68. Comprehensive application of image enhancement in spatial domain
【OpenCV routine 200 piece 】69. Discontinuous Fourier coefficients
【OpenCV routine 200 piece 】70. Fourier transform of one-dimensional continuous function
【OpenCV routine 200 piece 】71. Sampling of continuous functions
【OpenCV routine 200 piece 】72. One dimensional discrete Fourier transform
【OpenCV routine 200 piece 】73. Two dimensional continuous Fourier transform
【OpenCV routine 200 piece 】74. Anti aliasing of images
【OpenCV routine 200 piece 】75. Numpy Realize image Fourier transform
【OpenCV routine 200 piece 】76. OpenCV Realize image Fourier transform
【OpenCV routine 200 piece 】77. OpenCV Realize fast Fourier transform
【OpenCV routine 200 piece 】78. Fundamentals of image filtering in frequency domain
【OpenCV routine 200 piece 】79. The basic steps of image filtering in frequency domain
【OpenCV routine 200 piece 】80. Detailed steps of image filtering in frequency domain
【OpenCV routine 200 piece 】81. Gaussian low pass filter in frequency domain
【OpenCV routine 200 piece 】82. Butterworth low pass filter in frequency domain
【OpenCV routine 200 piece 】83. Low pass filtering in frequency domain : Printed text character repair
【OpenCV routine 200 piece 】84. The high pass filter is obtained from the low pass filter
【OpenCV routine 200 piece 】85. Application of high pass filter in frequency domain
【OpenCV routine 200 piece 】86. Frequency domain filtering applications : Fingerprint image processing
【OpenCV routine 200 piece 】87. Frequency domain passivation masking
【OpenCV routine 200 piece 】88. Laplace high pass filter in frequency domain
【OpenCV routine 200 piece 】89. Transfer function of band stop filter
【OpenCV routine 200 piece 】90. Frequency domain notch filter
【OpenCV routine 200 piece 】91. Gaussian noise 、 rayleigh noise 、 Irish noise
【OpenCV routine 200 piece 】92. Exponential noise 、 Uniform noise 、 Salt and pepper noise
【OpenCV routine 200 piece 】93. Histogram of noise model
【OpenCV routine 200 piece 】94. Arithmetic average filter
【OpenCV routine 200 piece 】95. Geometric mean filter
【OpenCV routine 200 piece 】96. Harmonic averaging filter
【OpenCV routine 200 piece 】97. Anti harmonic averaging filter
【OpenCV routine 200 piece 】98. Statistical sorting filter
【OpenCV routine 200 piece 】99. Modified alpha mean filter
【OpenCV routine 200 piece 】100. Adaptive local noise reduction filter
边栏推荐
- Redis distributed lock, lock code logic
- Uniapp navigateto jump failure
- 179. Maximum number - sort
- Restful fast request 2022.2.1 release, support curl import
- Introduce reflow & repaint, and how to optimize it?
- Grpc message sending of vertx
- Use the difference between "Chmod a + X" and "Chmod 755" [closed] - difference between using "Chmod a + X" and "Chmod 755" [closed]
- Abacus mental arithmetic test
- GFS分布式文件系统
- STM32 series - serial port UART software pin internal pull-up or external resistance pull-up - cause problem search
猜你喜欢
Pytest (5) - assertion
Single line function*
【LeetCode】106. Construct binary tree from middle order and post order traversal sequence (wrong question 2)
Three properties that a good homomorphic encryption should satisfy
Binary tree traversal - middle order traversal (golang)
Introduce reflow & repaint, and how to optimize it?
openresty ngx_ Lua execution phase
Spoon inserts and updates the Oracle database, and some prompts are inserted with errors. Assertion botch: negative time
The most powerful new household god card of Bank of communications. Apply to earn 2100 yuan. Hurry up if you haven't applied!
openresty ngx_lua執行階段
随机推荐
Data guard -- theoretical explanation (III)
openresty ngx_ Lua execution phase
How to build a technical team that will bring down the company?
使用druid连接MySQL数据库报类型错误
Uniapp navigateto jump failure
When to catch an exception and when to throw an exception- When to catch the Exception vs When to throw the Exceptions?
数据库和充值都没有了
"C zero foundation introduction hundred knowledge and hundred cases" (72) multi wave entrustment -- Mom shouted for dinner
Serious bugs with lifted/nullable conversions from int, allowing conversion from decimal
Can you really learn 3DMAX modeling by self-study?
The most powerful new household god card of Bank of communications. Apply to earn 2100 yuan. Hurry up if you haven't applied!
问题解决:AttributeError: ‘NoneType‘ object has no attribute ‘append‘
From task Run get return value - getting return value from task Run
Li Kou Jianzhi offer -- binary tree chapter
Codeforces Round #770 (Div. 2) ABC
179. Maximum number - sort
Scientific research: are women better than men?
Write a thread pool by hand, and take you to learn the implementation principle of ThreadPoolExecutor thread pool
Avoid material "minefields"! Play with super high conversion rate
Comment mettre en place une équipe technique pour détruire l'entreprise?