Python圖像處理丨認識圖像銳化和邊緣提取的4個算子

摘要:圖像銳化和邊緣提取技術可以消除圖像中的噪聲,提取圖像信息中用來表征圖像的一些變量,為圖像識別提供基礎。

本文分享自華為云社區《[Python圖像處理] 十七.圖像銳化與邊緣檢測之Roberts算子、Prewitt算子、Sobel算子和Laplacian算》,作者: eastmount 。

成都創新互聯公司致力于互聯網品牌建設與網絡營銷,包括做網站、成都做網站、SEO優化、網絡推廣、整站優化營銷策劃推廣、電子商務、移動互聯網營銷等。成都創新互聯公司為不同類型的客戶提供良好的互聯網應用定制及解決方案,成都創新互聯公司核心團隊10年專注互聯網開發,積累了豐富的網站經驗,為廣大企業客戶提供一站式企業網站建設服務,在網站建設行業內樹立了良好口碑。

由于收集圖像數據的器件或傳輸數圖像的通道的存在一些質量缺陷,文物圖像時間久遠,或者受一些其他外界因素、動態不穩定抓取圖像的影響,使得圖像存在模糊和有噪聲的情況,從而影響到圖像識別工作的開展。這時需要開展圖像銳化和邊緣檢測處理,加強原圖像的高頻部分,銳化突出圖像的邊緣細節,改善圖像的對比度,使模糊的圖像變得更清晰。

圖像銳化和邊緣提取技術可以消除圖像中的噪聲,提取圖像信息中用來表征圖像的一些變量,為圖像識別提供基礎。通常使用灰度差分法對圖像的邊緣、輪廓進行處理,將其凸顯。本文分別采用Laplacian算子、Robert算子、Prewitt算子和Sobel算子進行圖像銳化邊緣處理實驗。本文主要講解灰度線性變換,基礎性知識希望對您有所幫助。

該系列在github所有源代碼:https://github.com/eastmountyxz/ImageProcessing-Python

一.Roberts算子

Roberts算子又稱為交叉微分算法,它是基于交叉差分的梯度算法,通過局部差分計算檢測邊緣線條。常用來處理具有陡峭的低噪聲圖像,當圖像邊緣接近于正45度或負45度時,該算法處理效果更理想。其缺點是對邊緣的定位不太準確,提取的邊緣線條較粗。

Roberts算子的模板分為水平方向和垂直方向,如公式(11.7)所示,從其模板可以看出,Roberts算子能較好的增強正負45度的圖像邊緣。

詳細計算公式如下所示:(PS-下圖參考自己的書和論文)

在Python中,Roberts算子主要通過Numpy定義模板,再調用OpenCV的filter2D()函數實現邊緣提取。該函數主要是利用內核實現對圖像的卷積運算,其函數原型如下所示:

dst = filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]])

  • src表示輸入圖像
  • dst表示輸出的邊緣圖,其大小和通道數與輸入圖像相同
  • ddepth表示目標圖像所需的深度
  • kernel表示卷積核,一個單通道浮點型矩陣
  • anchor表示內核的基準點,其默認值為(-1,-1),位于中心位置
  • delta表示在儲存目標圖像前可選的添加到像素的值,默認值為0
  • borderType表示邊框模式

Python實現代碼如下所示:

# -*- coding: utf-8 -*-
import cv2  
import numpyas np  
import matplotlib.pyplotas plt
#讀取圖像
img= cv2.imread('lena.png')
lenna_img= cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
#灰度化處理圖像
grayImage= cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#Roberts算子
kernelx= np.array([[-1,0],[0,1]], dtype=int)
kernely= np.array([[0,-1],[1,0]], dtype=int)
x= cv2.filter2D(grayImage, cv2.CV_16S, kernelx)
y= cv2.filter2D(grayImage, cv2.CV_16S, kernely)
#轉uint8 
absX= cv2.convertScaleAbs(x) 
absY= cv2.convertScaleAbs(y) 
Roberts= cv2.addWeighted(absX,0.5,absY,0.5,0)
#用來正常顯示中文標簽
plt.rcParams['font.sans-serif']=['SimHei']
#顯示圖形
titles= [u'原始圖像', u'Roberts算子'] 
images= [lenna_img, Roberts] 
for i in xrange(2): 
 plt.subplot(1,2,i+1), plt.imshow(images[i], 'gray') 
 plt.title(titles[i]) 
 plt.xticks([]),plt.yticks([]) 
plt.show()

當前名稱:Python圖像處理丨認識圖像銳化和邊緣提取的4個算子
URL鏈接:http://m.kartarina.com/article20/dsogeco.html

成都網站建設公司_創新互聯,為您提供軟件開發小程序開發做網站用戶體驗微信公眾號標簽優化

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

綿陽服務器托管
主站蜘蛛池模板: 久久精品无码午夜福利理论片| 日韩人妻无码精品无码中文字幕| 中文一国产一无码一日韩| 国产成年无码AV片在线韩国| 无码人妻精品一区二区三区久久 | 亚洲av日韩av无码黑人| 激情无码人妻又粗又大中国人| 无码里番纯肉h在线网站| 亚洲综合av永久无码精品一区二区| 少妇人妻无码精品视频| 人妻少妇乱子伦无码专区| 久久亚洲AV成人无码| 成年午夜无码av片在线观看| 午夜爽喷水无码成人18禁三级| 亚洲日韩v无码中文字幕| 色欲aⅴ亚洲情无码AV| 亚洲真人无码永久在线观看| 中文有码vs无码人妻| 亚洲精品无码久久不卡| 久久精品无码一区二区三区免费| 日日摸日日碰夜夜爽无码| 亚洲午夜无码久久久久| 久久久久久国产精品无码下载| 人妻精品久久无码区| 亚洲av专区无码观看精品天堂| 一本色道久久HEZYO无码| 国产亚洲精品无码专区| 亚洲男人第一无码aⅴ网站| 无码av无码天堂资源网| 亚洲AV无码专区在线厂| 国产精品无码制服丝袜| 国产成人精品无码专区| 国产福利无码一区在线| 黑人巨大无码中文字幕无码| 亚洲AV无码成人网站在线观看| 蜜桃臀AV高潮无码| 精品亚洲AV无码一区二区| 亚洲av无码片在线观看| 亚洲中文字幕久久精品无码A| 无码国产精成人午夜视频不卡 | 人妻少妇乱子伦无码视频专区|