Размытие по Гауссу с радиусом в два пикселя

import time
import picamera
import picamera.array
import cv2


with picamera.PiCamera() as camera:
with picamera.array.PiRGBArray(camera) as stream:
    camera.resolution = (320,240)
    while True:
        camera.capture(stream,'bgr',use_video_port=True)
        cv2.imshow('video',stream.array)
        gray = cv2.cvtColor(stream.array,cv2.COLOR_BGR2GRAY)
        cv2.imshow('grayimage',gray)
        med1 = cv2.medianBlur(gray,3)#median filtering
        cv2.imshow('median',med1)
        gbl= cv2.GaussianBlur(med1,(5,5),0)
        cv2.imshow('guassian',gb1)            
        if cv2.waitKey(1) & 0xFF == ord('q'):
            cv2.destroyAllWindows()
            break
        stream.seek(0)
        stream.truncate()

Я пытался сделать размытие по Гауссу при выводе видео. На многих сайтах я видел, что размер ядра 5x5 дает соответствующий результат. Я хочу выполнить размытие с радиусом размытия 2. Как я могу проверить, какой радиус у ядра размером 5x5? Или есть способ сформировать ядро, которое дает на выходе радиус размытия 2?


person Aswathy    schedule 10.12.2014    source источник
comment
радиус размытия 2 не имеет точного значения. Может быть, вам нужен фильтр Гаусса с параметром sigma = 2? Если это правда, соседства 5x5 недостаточно, вам понадобится 9x9 или 11x11.   -  person Yves Daoust    schedule 10.12.2014


Ответы (1)


Матрица 5x5 имеет радиус 2. (2 пикселя в каждом направлении от центрального пикселя (2,2)).

Матрица NxN (N нечетная) имеет радиус (N-1) / 2

person runDOSrun    schedule 10.12.2014