OpenCV en Python. Parte 3

¡Hola, Habr! Esta es una continuación del tutorial sobre la biblioteca opencv en python. Para aquellos que no han leído la primera y la segunda parte, aquí: Parte 1 y Parte 2 , y todos los demás: ¡lectura agradable!













Introducción



En esta parte veremos aritmética de imágenes, división y fusión de canales, varios métodos de desenfoque.







Aritmética de imágenes



, , .

, RGB , [0,255]. , , 250 30 70 100? , 280 -30 . , RGB , 8- , 280 -30 . , , , :







print("opencv addition: {}".format(cv2.add(np.uint8([250]), 
                                                   np.uint8([30]))))
print("opencv subtract: {}".format(cv2.subtract(np.uint8([70]), 
                                                    np.uint8([100]))))
print("numpy addition: {}".format(np.uint8([250]) + np.uint8([30])))
print("numpy subtract: {}".format(np.uint8([70]) - np.uint8([71])))
      
      





, opencv add subtract , numpy. :







opencv addition: 255
opencv subtract: 0
numpy addition: 24
numpy subtract: 255
      
      





OpenCV , [0,255]. numpy . , 60 255. , 255 0, , 0 ( ) 255.









, RGB , . , ? opencv — split():







image = cv2.imread('rectangles.png')
b, g, r = cv2.split(image)
cv2.imshow('blue', b)
cv2.imshow('green', g)
cv2.imshow('red', r)
      
      





. :













. :













, . :













, . , . , , . , .

, , merge(), :







merge_image = cv2.merge([g,b,r])
cv2.imshow('merge_image', merge_image)
cv2.imshow('original', image)
cv2.waitKey(0)
      
      











, , , .









— , . opencv : averaging(), gaussian() median().







Averaging



, — , . — , , . , blur(), , :







def averaging_blurring():
    image = cv2.imread('girl.jpg')
    img_blur_3 = cv2.blur(image, (3, 3))
    img_blur_7 = cv2.blur(image, (7, 7))
    img_blur_11 = cv2.blur(image, (11, 11))
      
      





, :













Gaussian



, , , , , «» . , :













opencv GaussianBlur(), , . 0, opencv , :







def gaussian_blurring():
    image = cv2.imread('girl.jpg')
    img_blur_3 = cv2.GaussianBlur(image, (3, 3), 0)
    img_blur_7 = cv2.GaussianBlur(image, (7, 7), 0)
    img_blur_11 = cv2.GaussianBlur(image, (11, 11), 0)
      
      





Median



El desenfoque mediano reemplaza el píxel central de la imagen con la mediana de todos los píxeles en la región central, lo que hace que el desenfoque sea más efectivo para eliminar el ruido de estilo salino. Para aplicar este tipo de desenfoque, debe llamar a la función medianBlur () y pasar dos parámetros allí: la imagen y el tamaño del kernel:







def median_blurring():
    image = cv2.imread('girl.jpg')
    img_blur_3 = cv2.medianBlur(image, 3)
    img_blur_7 = cv2.medianBlur(image, 7)
    img_blur_11 = cv2.medianBlur(image, 11)
      
      





Como resultado, obtenemos lo siguiente:













Con esto concluye esta parte. El código, como siempre, está disponible en github . Te veo pronto:)








All Articles