def threshold(img, gauss_kernel=11, gammaFactor=0.45, threshold = 50): gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) k = gauss_kernel gray_filtred = gamma.correction(gray,gammaFactor) gray_filtred = cv2.GaussianBlur(gray_filtred, (k, k), 0) edge_filtred = cv2.threshold(gray_filtred,threshold,maxval=1,type=cv2.THRESH_BINARY_INV)[1] vis_filtred = img.copy() vis_filtred[edge_filtred != 0] = (0, 255, 0) return edge_filtred,vis_filtred
def adaptiveThreshold(img, gauss_kernel=11, gammaFactor=0.45, C = -3): gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) k = gauss_kernel gray_filtred = gamma.correction(gray,gammaFactor) gray_filtred = cv2.GaussianBlur(gray_filtred, (k, k), 0) Cval = C edge_filtred = cv2.adaptiveThreshold(gray_filtred,maxValue=1,adaptiveMethod=cv2.ADAPTIVE_THRESH_GAUSSIAN_C,thresholdType=cv2.THRESH_BINARY,blockSize=11,C=Cval) vis_filtred = img.copy() vis_filtred[edge_filtred != 0] = (0, 255, 0) return edge_filtred,vis_filtred
def canny(img, gauss_kernel=11, gammaFactor=0.45): """ :param img: """ gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) k = gauss_kernel gray_filtred = gamma.correction(gray,gammaFactor) gray_filtred = cv2.GaussianBlur(gray_filtred, (k, k), 0) thrs1 = 20 kernel = 9 ratio = 3 edge_filtred = cv2.Canny(gray_filtred, thrs1, thrs1 * ratio, kernel) # zaznaczenie wyniku wyznaczania krawedzi vis_filtred = img.copy() # vis_filtred /= 2 vis_filtred[edge_filtred != 0] = (0, 255, 0) return edge_filtred,vis_filtred