OpenCV dengan Python. Bagian 3

Halo, Habr! Ini adalah kelanjutan dari tutorial tentang perpustakaan opencv dengan python. Bagi mereka yang belum membaca bagian pertama dan kedua, ini: Bagian 1 dan Bagian 2 , dan semua orang - bacaan yang menyenangkan!













pengantar



Pada bagian ini kita akan melihat aritmatika gambar, pemisahan saluran dan penggabungan, berbagai metode pengaburan.







Aritmatika gambar



, , .

, 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



Keburaman median menggantikan piksel tengah gambar dengan median semua piksel di wilayah inti, membuat keburaman paling efektif dalam menghilangkan noise gaya garam. Untuk menerapkan jenis blur ini, Anda perlu memanggil fungsi medianBlur () dan meneruskan dua parameter di sana: image dan ukuran 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)
      
      





Hasilnya, kami mendapatkan yang berikut:













Ini mengakhiri bagian ini. Kode, seperti biasa, tersedia di github . Sampai jumpa lagi:)








All Articles