Package: cv2filters
CV2FiltersCV2Filters a powerful Python package designed as a wrapper around OpenCV, the popular open-source computer vision library. cv2Filters simplifies image processing tasks by providing a higher-level abstraction of the underlying OpenCV functionality. This package aims to make image processing more accessible to both beginner and advanced users, enabling them to efficiently perform a wide range of image manipulation and analysis tasksCV2Filters empowers users to harness the power of OpenCV in a simplified and intuitive manner. By abstracting away the complexities, the package enables a broader audience to explore image processing, drive innovation, and unlock new possibilities in the field of computer vision.InstallationRefer ExampleTo install the library, you can use pip:pipinstallcv2filtersUsageFirst, import theFiltersclass from the library:fromcv2filtersimportFilters# Create an instance of the Filters classfilters=Filters()Now you can use the various filtering functions available in the library. For example, let's show how to use the increase_brightness and apply_blur functions:Create an instance of the Filters class and then call the desired methods on the instance. For example:fromcv2filtersimportFilters# Create an instance of the Filters classfilters=Filters()importcv2# Read an imagecv2.imread('./path-to-img.jpg')# Increase brightness of the imagebrightened_image=filters.increase_brightness(image,value=10)# Blur the imageblurred_image=filters.blur(image,kernal_size=(5,5))# Rotate the imagerotated_image=filters.rotate_image(image,angle=45)# Flip the image horizontallyflipped_image=filters.flip_image(image,flip_code=1)# Crop a region from the imagecropped_image=filters.crop_image(image,x=100,y=100,width=200,height=200)# Resize the imageresized_image=filters.resize_image(image,width=500,height=500)# Convert the image to grayscalegrayscale_image=filters.convert_to_grayscale(image)# Detect edges in the imageedges_image=filters.detect_edges(image,threshold1=100,threshold2=200)# Apply the Sobel filter to detect edgessobel_image=filters.sobel_filter(image,dx=1,dy=1,ksize=3)# Apply bilateral filtering to reduce noisefiltered_image=filters.bilateral_filter(image,d=9,sigma_color=75,sigma_space=75)# Perform erosion on the imageeroded_image=filters.erosion(image,kernel=None,iterations=1)# Perform dilation on the imagedilated_image=filters.dilation(image,kernel=None,iterations=1)# Apply perspective transformation to the imagetransformed_image=filters.perspective_transform(image,src_points,dst_points)# Perform morphological opening on the imageopened_image=filters.morphological_opening(image,kernel=None,iterations=2)# Perform morphological closing on the imageclosed_image=filters.closing(image,kernel=None,iterations=2)# Highlight a box region in the imagehighlighted_image=filters.highlight_box(image,(x,y,width,height))Make sure to replace 'path_to_image.jpg' with the actual path to the image file you want to process, and adjust the method arguments as needed.Methodsread_image(file_path: str) -> np.ndarray:
This method reads an image from the specified file path and returns it as a NumPy array.increase_brightness(image: np.ndarray, value: int = 10) -> np.ndarray:
This method increases the brightness of an image by the specified value.blur(image: np.ndarray, kernel_size: tuple = (5, 5)) -> np.ndarray:
This method applies a Gaussian blur to the image using the specified kernel size.rotate_image(image: np.ndarray, angle: float) -> np.ndarray:
This method rotates an image by the specified angle.flip_image(image: np.ndarray, flip_code: int) -> np.ndarray:
This method flips an image horizontally or vertically based on the flip code.crop_image(image: np.ndarray, x: int, y: int, width: int, height: int) -> np.ndarray:
This method crops a rectangular region from an image based on the specified coordinates and dimensions.resize_image(image: np.ndarray, width: int = 250, height: int = 250) -> np.ndarray:
This method resizes an image to the specified width and height.convert_to_grayscale(image: np.ndarray) -> np.ndarray:
This method converts an image to grayscale.detect_edges(image: np.ndarray, threshold1: float = 100, threshold2: float = 200) -> np.ndarray:
This method detects edges in an image using the Canny edge detection algorithm.sobel_filter(image: np.ndarray, dx: int = 1, dy: int = 1, ksize: int = 3) -> np.ndarray:
This method applies the Sobel filter to an image for edge detection.bilateral_filter(image: np.ndarray, d: int = 9, sigma_color: float = 75, sigma_space: float = 75) -> np.ndarray:
This method applies a bilateral filter to an image for noise reduction.erosion(image: np.ndarray, kernel: np.ndarray = None, iterations: int = 1) -> np.ndarray:
This method applies erosion to an image using the specified kernel and number of iterations.dilation(image: np.ndarray, kernel: np.ndarray = None, iterations: int = 1) -> np.ndarray:
This method applies dilation to an image using the specified kernel and number of iterations.perspective_transform(image: np.ndarray, src_points: np.ndarray, dst_points: np.ndarray) -> np.ndarray:
This method applies a perspective transformation to an image using the specified source and destination points.morphological_opening(image: np.ndarray, kernel: np.ndarray = None, iterations: int = 2) -> np.ndarray:
This method applies morphological opening to an image to remove noise and small objects.closing(image: np.ndarray, kernel: np.ndarray = None, iterations: int = 2) -> np.ndarray:
This method applies morphological closing to an image to close small holes.highlight_box(image: np.ndarray, box: Tuple[int, int, int, int]) -> np.ndarray:
This method highlights a box region in an image by turning the rest of the image to black.For testingpython-munittesttests.test_image_filtersContributingIf you'd like to contribute to this library, please follow these steps:Fork the repository.Create a new branch.Make your changes and test them.Submit a pull request.