Python Prewitt 算子边缘检测代码示例
以下是使用 Prewitt 算子对图像进行边缘处理的 Python 代码示例:
import numpy as np
import cv2
# 读取图像
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 定义 Prewitt 算子
prewitt_x = np.array([[-1, 0, 1], [-1, 0, 1], [-1, 0, 1]])
prewitt_y = np.array([[-1, -1, -1], [0, 0, 0], [1, 1, 1]])
# 对图像进行边缘处理
edges_x = cv2.filter2D(img, -1, prewitt_x)
edges_y = cv2.filter2D(img, -1, prewitt_y)
# 将 x 和 y 方向的边缘进行合并
edges = cv2.addWeighted(edges_x, 0.5, edges_y, 0.5, 0)
# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Prewitt Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上面的代码中,我们首先读取了一张灰度图像。然后,我们定义了 Prewitt 算子的 x 和 y 方向的卷积核。接下来,我们使用 OpenCV 的 filter2D 函数对图像进行边缘处理。最后,我们将 x 和 y 方向的边缘进行合并,并显示结果。
请注意,上述代码仅适用于灰度图像。如果您要处理彩色图像,请先将其转换为灰度图像。
原文地址: https://www.cveoy.top/t/topic/nUXl 著作权归作者所有。请勿转载和采集!