OpenCV in Python. Teil 3

Hallo Habr! Dies ist eine Fortsetzung des Tutorials zur opencv-Bibliothek in Python. Für diejenigen, die den ersten und zweiten Teil nicht gelesen haben, hier: Teil 1 und Teil 2 und alle anderen - angenehme Lektüre!













Einführung



In diesem Teil werden wir uns mit Bildarithmetik, Kanalaufteilung und -zusammenführung sowie verschiedenen Unschärfemethoden befassen.







Bildarithmetik



, , .

, 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



Die mittlere Unschärfe ersetzt das mittlere Pixel des Bildes durch den mittleren aller Pixel im Kernbereich, wodurch die Unschärfe das Rauschen im Salzstil am effektivsten entfernt. Um diese Art von Unschärfe anzuwenden, müssen Sie die Funktion medianBlur () aufrufen und dort zwei Parameter übergeben: das Image und die Kernelgröße:







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)
      
      





Als Ergebnis erhalten wir Folgendes:













Damit ist dieser Teil abgeschlossen. Der Code ist wie immer auf github verfügbar . Bis bald:)








All Articles