Unleash the power of OpenCV with CV2Filters, the ultimate image processing wrapper for all skill levels, revolutionizing computer vision with seamless exploration, manipulation, and groundbreaking research
Project description
CV2Filters
CV2Filters 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 tasks
CV2Filters 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.
Installation
To install the library, you can use pip:
pip install cv2filters
Usage
First, import the Filters
class from the library:
from cv2filters import Filters
# Create an instance of the Filters class
filters = 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:
from cv2filters import Filters
# Create an instance of the Filters class
filters = Filters()
import cv2
# Read an image
cv2.imread('./path-to-img.jpg')
# Increase brightness of the image
brightened_image = filters.increase_brightness(image,value=10)
# Blur the image
blurred_image = filters.blur(image,kernal_size=(5,5))
# Rotate the image
rotated_image = filters.rotate_image(image, angle=45)
# Flip the image horizontally
flipped_image = filters.flip_image(image, flip_code=1)
# Crop a region from the image
cropped_image = filters.crop_image(image, x=100, y=100, width=200, height=200)
# Resize the image
resized_image = filters.resize_image(image, width=500, height=500)
# Convert the image to grayscale
grayscale_image = filters.convert_to_grayscale(image)
# Detect edges in the image
edges_image = filters.detect_edges(image,threshold1=100, threshold2=200)
# Apply the Sobel filter to detect edges
sobel_image = filters.sobel_filter(image,dx=1, dy= 1, ksize=3)
# Apply bilateral filtering to reduce noise
filtered_image = filters.bilateral_filter(image,d=9, sigma_color=75, sigma_space=75)
# Perform erosion on the image
eroded_image = filters.erosion(image,kernel=None, iterations=1)
# Perform dilation on the image
dilated_image = filters.dilation(image,kernel=None, iterations=1)
# Apply perspective transformation to the image
transformed_image = filters.perspective_transform(image, src_points, dst_points)
# Perform morphological opening on the image
opened_image = filters.morphological_opening(image,kernel=None, iterations=2)
# Perform morphological closing on the image
closed_image = filters.closing(image,kernel=None, iterations=2)
# Highlight a box region in the image
highlighted_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.
Methods
-
read_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 testing
python -m unittest tests.test_image_filters
Contributing
If 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cv2filters-0.2.6.tar.gz
.
File metadata
- Download URL: cv2filters-0.2.6.tar.gz
- Upload date:
- Size: 13.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86bc40df167bb8ad928eb15e123e6042d7d5bddc1729dbfa590995a4f98b6001 |
|
MD5 | 0f171ba8f3cc41bd98c11e264cb4b4af |
|
BLAKE2b-256 | 485bf7499a529d45f3f442fca7abc22a60ac3de442e4081d21184bb66c3817b1 |
File details
Details for the file cv2filters-0.2.6-py3-none-any.whl
.
File metadata
- Download URL: cv2filters-0.2.6-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 948f4ab8bc41d50dd49d8be8c26a143a8bb6460028fb8ad176b095eb219cc6bb |
|
MD5 | fab1b20aaf55d7eb0af3d1114e927c27 |
|
BLAKE2b-256 | b9b526d74d4cd59d4f73cc24fe815d0b28628fb9dadb49256e61f607b8dcffb6 |