6.2.5五种滤波综合示例
import cv2
import random
def saltimage ( srcImage, num) :
for x in range ( num) :
i = random. randint( 0 , srcImage. shape[ 0 ] - 1 )
j = random. randint( 0 , srcImage. shape[ 1 ] - 1 )
srcImage[ i] [ j] [ 0 ] = 255
srcImage[ i] [ j] [ 1 ] = 255
srcImage[ i] [ j] [ 2 ] = 255
return srcImage
def showboxFilterImage ( n) :
boxFilterImage = cv2. boxFilter( srcImage, - 1 , ( n + 1 , n + 1 ) )
cv2. imshow( "boxFilterImage" , boxFilterImage)
def showblurImage ( n) :
blurImage = cv2. blur( srcImage, ( n + 1 , n + 1 ) )
cv2. imshow( "blurImage" , blurImage)
def showGaussianBlurImage ( n) :
GaussianBlurImage = cv2. GaussianBlur( srcImage, ( n * 2 + 1 , n * 2 + 1 ) , 0 )
cv2. imshow( "GaussianBlurImage" , GaussianBlurImage)
def medianBlurImage ( n) :
mediaImage = cv2. medianBlur( saltImage, n* 2 + 1 )
cv2. imshow( "medianBlurImage" , mediaImage)
def bilateralFilterImage ( n) :
bilateralImage = cv2. bilateralFilter( srcImage, n, n * 2 , n / 2 )
cv2. imshow( "bilateralFilterImage" , bilateralImage)
srcImage = cv2. imread( "E:/Study/python/OpenCV_study/img/10.jpg" )
cv2. imshow( "srcImage" , srcImage)
value = 3
saltImage = srcImage. copy( )
saltImage = saltimage( saltImage, 3000 )
cv2. imshow( "saltImage" , saltImage)
cv2. namedWindow( "boxFilterImage" )
cv2. createTrackbar( "ksize" , "boxFilterImage" , value, 40 , showboxFilterImage)
boxFilterImage = cv2. boxFilter( srcImage, - 1 , ( value + 1 , value + 1 ) )
cv2. imshow( "boxFilterImage" , boxFilterImage)
cv2. namedWindow( "blurImage" )
cv2. createTrackbar( "ksize" , "blurImage" , value, 40 , showblurImage)
blurImage = cv2. blur( srcImage, ( value + 1 , value + 1 ) )
cv2. imshow( "blurImage" , blurImage)
cv2. namedWindow( "GaussianBlurImage" )
cv2. createTrackbar( "ksize" , "GaussianBlurImage" , value, 40 , showGaussianBlurImage)
GaussianBlurImage = cv2. GaussianBlur( srcImage, ( value * 2 + 1 , value * 2 + 1 ) , 0 )
cv2. imshow( "GaussianBlurImage" , GaussianBlurImage)
cv2. namedWindow( "medianBlurImage" )
cv2. createTrackbar( "ksize" , "medianBlurImage" , value, 40 , medianBlurImage)
mediaImage = cv2. medianBlur( saltImage, value)
cv2. imshow( "medianBlurImage" , mediaImage)
cv2. namedWindow( "bilateralFilterImage" )
cv2. createTrackbar( "ksize" , "bilateralFilterImage" , value, 40 , bilateralFilterImage)
bilateralImage = cv2. bilateralFilter( srcImage, value, value * 2 , value / 2 )
cv2. imshow( "bilateralFilterImage" , bilateralImage)
cv2. waitKey( 0 )