def edgeDetection(image):
    # Apply OpenCV median filter to denoise the image
    image = cv2.medianBlur(image, 3)

    # Save and or show images for testing purposes.
    cv2.imwrite("edgeDetection_after_medianBlur.jpg", image)
    # cv2.imshow('image',image)
    # cv2.waitKey(0)
    # cv2.destroyAllWindows()

    # Compute imageGradient in x direction
    imageX = imageGradientX(image)
    # Remove last row from imageX
    imageX = imageX[: imageX.shape[0] - 1, :]

    imageY = imageGradientY(image)
    imageY = imageY[:, : imageY.shape[1] - 1]
    image = (imageX + imageY) ** 1.4
    cv2.imwrite("edgeDetection_after_adding_gradient_X_Y.jpg", image)

    image = convertToBlackAndWhite(image)
    cv2.imwrite("edgeDetection_after_convertToBW.jpg", image)

    # image = cv2.medianBlur(image, 3)
    # cv2.imwrite("edgeDetection_after_medianBlur_Final.jpg", image)

    return image
Ejemplo n.º 2
0
    def test_imageGradientX(self):
        test_output = imageGradientX(self.testImage)
        self.assertEqual(type(test_output), type(self.testImage))

        self.assertEqual(test_output.shape[0], self.testImage.shape[0])
        self.assertEqual(test_output.shape[1], self.testImage.shape[1] - 1)

        print "\n\nSUCCESS: imageGradientX returns the correct output type.\n"
Ejemplo n.º 3
0
    def test_imageGradientX(self):
        test_output = imageGradientX(self.testImage)
        self.assertEqual(type(test_output), type(self.testImage))

        self.assertEqual(test_output.shape[0], self.testImage.shape[0])
        self.assertEqual(test_output.shape[1], self.testImage.shape[1] - 1)

        print "\n\nSUCCESS: imageGradientX returns the correct output type.\n"