pyhon实现算子边缘检测算法小实例
import cv2
import numpy as np
import math
# 加载图片
img = cv2.imread('C:\\Users\\***\\Desktop\\XXX.tif')
info = img.shape
# 展示图片
cv2.imshow('src', img)
height = info[0]
width = info[1]
# 彩色图片转灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
dst = np.zeros((height, width, 1), np.uint8)
for i in range(0, height - 2):
for j in range(0, width - 2):
gy = gray[i, j] * 1 + gray[i, j + 1] * 2 + gray[i, j + 2] * 1 - gray[i + 2, j] * 1 - gray[i + 2, j + 1] * 2 - \
gray[i + 2, j + 2] * 1
gx = gray[i, j] + gray[i + 1, j] * 2 + gray[i + 2, j] - gray[i, j + 2] - gray[i + 1, j + 2] * 2 - gray[
i + 2, j + 2] * 1
grad = math.sqrt(gx * gx + gy * gy)
# 阈值判断
if grad > 50:
dst[i, j] = 255
else:
dst[i, j] = 0
cv2.imshow('dst', dst)
cv2.waitKey(0)
如有侵权,告知本人,将删除!