rebased on master
This commit is contained in:
45
main.py
Normal file
45
main.py
Normal file
@@ -0,0 +1,45 @@
|
||||
import sys
|
||||
import cv2
|
||||
from pathlib import Path
|
||||
|
||||
def laplace_edge_detection(image_path, output_path):
|
||||
"""
|
||||
Opens an image, applies Laplace filtering for edge detection,
|
||||
and saves the resulting grayscale image.
|
||||
|
||||
Args:
|
||||
image_path (str): Path to the input image file.
|
||||
output_path (str): Path to save the processed image.
|
||||
"""
|
||||
|
||||
try:
|
||||
# Open the image in grayscale mode
|
||||
img = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
|
||||
|
||||
if img is None:
|
||||
print(f"Error: Could not open or read image at {image_path}")
|
||||
return
|
||||
|
||||
# Apply Laplace filter for edge detection
|
||||
laplace_kernel = np.array([[0, 1, 0],
|
||||
[1, -4, 1],
|
||||
[0, 1, 0]]) # Standard Laplace kernel
|
||||
laplace_filtered = cv2.filter2D(img, -1, laplace_kernel)
|
||||
|
||||
# Convert to uint8 (grayscale 8-bit) and clip values to the valid range [0, 255]
|
||||
laplace_filtered = np.uint8(laplace_filtered) # Important for saving correctly
|
||||
|
||||
# Save the resulting image
|
||||
cv2.imwrite(output_path, laplace_filtered)
|
||||
|
||||
print(f"Laplace edge detection complete. Image saved to {output_path}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"An error occurred: {e}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import numpy as np # Import here, only if needed for the main execution
|
||||
input_path = sys.argv[1]
|
||||
output_path = sys.argv[2]
|
||||
laplace_edge_detection(input_path, output_path)
|
||||
Reference in New Issue
Block a user