导语:
本文主要介绍了关于python中Prewitt算子如何理解的相关知识,包括fredholm算子的理解,以及什么是算子这些编程知识,希望对大家有参考作用。
说明
1. Prewitt算子是一阶微分算子的边缘检测。它利用上下像素和左右相邻像素的灰度差来检测边缘处的边缘。
去除部分伪边缘,对噪声有平滑作用。
2、Prewitt算子使用33个模板来计算该区域的像素值。
Robert算子的模板数为22,因此Prewitt算子的边缘检测结果在水平和垂直方向上比Robert算子更明显。 Prewitt算子适用于识别具有较大噪声和灰度梯度的图像。
实例
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
# 读取图像
img = cv.imread('data.jpg', cv.COLOR_BGR2GRAY)
rgb_img = cv.cvtColor(img, cv.COLOR_BGR2RGB)
# 灰度化处理图像
grayImage = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
# Prewitt 算子
kernelx = np.array([[1,1,1],[0,0,0],[-1,-1,-1]],dtype=int)
kernely = np.array([[-1,0,1],[-1,0,1],[-1,0,1]],dtype=int)
x = cv.filter2D(grayImage, cv.CV_16S, kernelx)
y = cv.filter2D(grayImage, cv.CV_16S, kernely)
# 转 uint8 ,图像融合
absX = cv.convertScaleAbs(x)
absY = cv.convertScaleAbs(y)
Prewitt = cv.addWeighted(absX, 0.5, absY, 0.5, 0)
# 用来正常显示中文标签
plt.rcParams['font.sans-serif'] = ['SimHei']
# 显示图形
titles = ['原始图像', 'Prewitt 算子']
images = [rgb_img, Prewitt]
for i in range(2):
plt.subplot(1, 2, i + 1), plt.imshow(images[i], 'gray')
plt.title(titles[i])
plt.xticks([]), plt.yticks([])
plt.show()
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python浏览器的操作有哪些11/17
- ♥ 10分钟用Python写一个蛇游戏11/25
- ♥ 学习python需要java吗?12/16
- ♥ python如何截取数组的前几位08/19
- ♥ 《Python基础教程》第三版好学吗?12/10
- ♥ python错误如何跟踪12/09
内容反馈