Exemple #1
0
def main(filter, kernel_size, image, sigma):
    """
    main function
    reads the image coming from the image path cli arg

    handles the switch of argument/ perams for the PA1 program.
    accepts two arguments, filter and kernel_size

    :argument filter[dict], kernel_size[integer value]
    :returns success or failure value from dict filter

    """

    image = cv2.imread(image, cv2.IMREAD_GRAYSCALE)

    # my_dict = {
    #     'box': filters.box(kernel_size, image),
    #     'median': filters.median(kernel_size, image),
    #     'guassian': filters.gaussian(kernel_size, image),
    #     'gradient': filters.gradient(kernel_size, image),
    #     'sobel': filters.sobel(image),
    #     'fast_gaussian': filters.fast_gaussian(kernel_size, image),
    #     'histogram': filters.histogram(kernel_size, image),
    #     'thresholding': filters.thesholding(kernel_size, image)
    # }
    # return my_dict[filter](kernel_size, image)

    if filter == 'box':
        return filters.box(kernel_size, image)
    elif filter == 'median':
        return filters.median(image)
    elif filter == 'gaussian':
        return filters.gaussian(kernel_size, sigma, image)
    elif filter == 'gradient':
        return filters.gradient(image)
    elif filter == 'sobel':
        return filters.sobel(image)
    elif filter == 'fast_gaussian':
        return filters.fast_gaussian(kernel_size, image, sigma)
    elif filter == 'histogram':
        return filters.histogram(kernel_size, image)
    elif filter == 'thresholding':
        return filters.thresholding(kernel_size, image)
    else:
        print("function not recognized")
        return 0
Exemple #2
0
def preprocessing(pixels):
	print "-------------Preprocessing phase--------------"
	
	#Gaussian filter
	print "Passing gaussian filter."
	pixels = filters.gaussian(pixels)

	#define threshold to binarization of image
	k = util.otsu_thresholding(pixels)
	print "Threshold used in the binarization: %d" % (k)
	#binarize image using the threshold k
	print "Getting binarized image."
	pixels = util.binarization(pixels, k)

	print "Closing operator."
	pixels = morphology.binary_closing(pixels)
	print "Opening operator."
	pixels = morphology.binary_opening(pixels)

	return pixels
Exemple #3
0
def all_filters(frame,scale_percent = 20, threshVal1 = 120, threshVal2 = 255,thresholdVal1_inv = 70,thresholdVal2_inv = 255,
				thresholdVal3 = 0, thresholdVal4 = 100,median_filter_size = 5,blackign =3):
	# ret, frame = cap.read()
	
	# print (frame.shape)
	width = int(frame.shape[1] * scale_percent / 100)
	height = int(frame.shape[0] * scale_percent / 100)
	dsize = (width, height)
	frame = cv2.resize(frame, dsize)

	H = cv2.cvtColor(frame,cv2.COLOR_RGB2HSV_FULL)
	# H = cv2.cvtColor(frame,cv2.COLOR_RGB2GRAY)
	# print (frame.shape)
	frame2 = threshold(H[:,:,1].copy(),threshVal1,threshVal2)
	frame3 = threshold_inv(frame[:,:,1].copy(),thresholdVal1_inv,thresholdVal2_inv)
	frame4 = threshold(frame[:,:,0].copy(),thresholdVal3,thresholdVal4)
	frame2 = np.array(frame2,np.uint8)
	frame3 = np.array(frame3,np.uint8)
	frame4 = np.array(frame4,np.uint8)
	# print (frame4.shape)
	frame2 = median_filter(frame2,filter_size = median_filter_size,plot=False)
	frame3 = median_filter(frame3,filter_size = median_filter_size,plot=False)
	frame4 = median_filter(frame4,filter_size = median_filter_size,plot=False)
	# print (frame4.shape)
	frame3 = blacker(frame3,blackign)
	# frame3,a = sobel(frame3,True)
	frame3 = gaussian(frame3.copy(),9,plot=False)
	# frame4 = laplacian(frame2)

	a = pixel_count(frame3)
	b = pixel_count(frame4)
	
	if b !=0:
		ratio_full = (a/b+1)*100
	# print ('ammatasiri methnata wenakan enawa')
	return frame2, frame3, frame4, a,b, ratio_full
	
Exemple #4
0
    # H = cv2.cvtColor(frame,cv2.COLOR_RGB2GRAY)

    frame2 = threshold(H[:, :, 1].copy(), 120, 255)
    frame3 = threshold_inv(frame[:, :, 1].copy(), 70, 255)
    frame4 = threshold(frame[:, :, 0].copy(), 0, 100)
    frame2 = np.array(frame2, np.uint8)
    frame3 = np.array(frame3, np.uint8)
    frame4 = np.array(frame4, np.uint8)

    frame2 = median_filter(frame2, filter_size=3, plot=False)
    frame3 = median_filter(frame3, filter_size=3, plot=False)
    frame4 = median_filter(frame4, filter_size=5, plot=False)

    frame3 = blacker(frame3, 300)
    # frame3,a = sobel(frame3,True)
    frame3 = gaussian(frame3.copy(), 9, plot=False)
    # frame4 = laplacian(frame2)

    a = pixel_count(frame3)
    b = pixel_count(frame4)
    # print('a',a,'\nb',b)

    ratio_full = (a / b) * 100
    if ratio_full >= 80:
        print('ratio_full', ratio_full, '%')
        drawer(frame4)

    # frame3 = np.array(frame3,np.uint8)
    cv2.imshow('frame2', frame2)
    cv2.imshow('frame3', frame3)
    # cv2.imshow('HSV',H[:,:,0])