新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python中Prewitt算子如何理解
說明

創(chuàng)新互聯(lián)專注于洪山企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),電子商務(wù)商城網(wǎng)站建設(shè)。洪山網(wǎng)站建設(shè)公司,為洪山等地區(qū)提供建站服務(wù)。全流程按需求定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
1、Prewitt算子是一階微分算子的邊緣檢測,利用像素點上下、左右鄰點的灰度差,在邊緣達(dá)到極值檢測邊緣。
去除部分偽邊緣,對噪聲有平滑作用。
2、Prewitt算子使用33個模板來計算該區(qū)域的像素值。
而Robert算子的模板是22個,所以Prewitt算子的邊緣檢測結(jié)果在水平和垂直方向上比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)
# 轉(zhuǎn) uint8 ,圖像融合
absX = cv.convertScaleAbs(x)
absY = cv.convertScaleAbs(y)
Prewitt = cv.addWeighted(absX, 0.5, absY, 0.5, 0)
# 用來正常顯示中文標(biāo)簽
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()以上就是python中Prewitt算子的理解,希望對大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)python教程
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。
網(wǎng)站題目:創(chuàng)新互聯(lián)Python教程:python中Prewitt算子如何理解
本文鏈接:http://www.dlmjj.cn/article/cdhdogo.html


咨詢
建站咨詢
