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:)