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
def test_imageGradientY(self): test_output = imageGradientY(self.testImage) self.assertEqual(type(test_output), type(self.testImage)) self.assertEqual(test_output.shape[0], self.testImage.shape[0] - 1) self.assertEqual(test_output.shape[1], self.testImage.shape[1]) print "\n\nSUCCESS: imageGradientY returns the correct output type.\n"