Skip to main content

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

Downloads PyPI - Format GitHub license Upload Python Package Supported Versions PyPI PyPI - Downloads Downloads

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.

Demo

Installation

Refer Example

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

  1. read_image(file_path: str) -> np.ndarray: This method reads an image from the specified file path and returns it as a NumPy array.

  2. increase_brightness(image: np.ndarray, value: int = 10) -> np.ndarray: This method increases the brightness of an image by the specified value.

  3. 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.

  4. rotate_image(image: np.ndarray, angle: float) -> np.ndarray: This method rotates an image by the specified angle.

  5. flip_image(image: np.ndarray, flip_code: int) -> np.ndarray: This method flips an image horizontally or vertically based on the flip code.

  6. 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.

  7. resize_image(image: np.ndarray, width: int = 250, height: int = 250) -> np.ndarray: This method resizes an image to the specified width and height.

  8. convert_to_grayscale(image: np.ndarray) -> np.ndarray: This method converts an image to grayscale.

  9. 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.

  10. 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.

  11. 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.

  12. 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.

  13. 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.

  14. 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.

  15. 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.

  16. 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.

  17. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cv2filters-0.2.6.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

cv2filters-0.2.6-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

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

Hashes for cv2filters-0.2.6.tar.gz
Algorithm Hash digest
SHA256 86bc40df167bb8ad928eb15e123e6042d7d5bddc1729dbfa590995a4f98b6001
MD5 0f171ba8f3cc41bd98c11e264cb4b4af
BLAKE2b-256 485bf7499a529d45f3f442fca7abc22a60ac3de442e4081d21184bb66c3817b1

See more details on using hashes here.

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

Hashes for cv2filters-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 948f4ab8bc41d50dd49d8be8c26a143a8bb6460028fb8ad176b095eb219cc6bb
MD5 fab1b20aaf55d7eb0af3d1114e927c27
BLAKE2b-256 b9b526d74d4cd59d4f73cc24fe815d0b28628fb9dadb49256e61f607b8dcffb6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page