Python中的OpenCV圖像閾值處理和平滑處理詳解
更新時間:2023年08月07日 10:14:14 作者:小白地瓜
這篇文章主要介紹了Python中的OpenCV圖像閾值處理和平滑處理詳解,OpenCV是一個跨平臺的計算機視覺庫,可用于開發(fā)實時的圖像處理、計算機視覺以及模式識別程序,需要的朋友可以參考下
一、圖像的閾值處理
ret, dst = cv2.threshold(src=,thresh=,maxval=,type=)
- dst:輸出圖
- src:輸入圖,只能是單通道圖像,通常來說為灰度圖
- thresh:閾值
- maxval:當像素值超過了閾值(或者小于閾值,根據(jù)type來決定),所賦予的值
- type:二值化操作的類型和,包含以下五種
- cv2.THRESH_BINARY 超過閾值部分取maxval(最大值),否則0
- cv2.THRESH_BINARY_INV 小于閾值部分取maxval(最大值) 否則0
- cv2.THRESH_TRUNC 大于閾值部分設(shè)為閾值,否則不變
- cv2.THRESH_TOZERO 大于閾值部分不改變,否則設(shè)為0
- cv2.THRESH_TOZERO_INV 小于閾值部分不改變嗎,否則設(shè)為0
import cv2 img_h = cv2.imread(r"C:\Users\admin\Desktop\yy.jpg", cv2.IMREAD_GRAYSCALE) # 超過閾值部分取maxval(最大值),否則0 ret1,img1 = cv2.threshold(img_h,127,255,cv2.THRESH_BINARY) # 小于閾值部分取maxval(最大值) 否則0 ret2,img2 = cv2.threshold(img_h,127,255,cv2.THRESH_BINARY_INV) # 大于閾值部分設(shè)為閾值,否則不變 ret3,img3 = cv2.threshold(img_h,127,255,cv2.THRESH_TRUNC) # 大于閾值部分不改變,否則設(shè)為0 ret4,img4 = cv2.threshold(img_h,127,255,cv2.THRESH_TOZERO) # 小于閾值部分不改變嗎,否則設(shè)為0 ret5,img5 = cv2.threshold(img_h,127,255,cv2.THRESH_TOZERO_INV) titles = ["ORIGINAL", "BINARY", "BINARY_INV", "TRUNC", "TOZERO", "TOZERO_INV"] imgs = [img_h,img1,img2,img3,img4,img5] for i in range(6): plt.subplot(2,3,i+1),plt.imshow(imgs[i],"gray") plt.title(titles[i]) plt.xticks([]), plt.yticks([]) plt.show()
效果如下
二、圖像的平滑處理
img = cv2.imread(r"C:\Users\admin\Desktop\yy2.jpg", cv2.IMREAD_GRAYSCALE) # 均值濾波 # 簡單的平均卷積操作 # (3,3)為每次處理矩陣的大小 # 比如3*3的矩陣9個數(shù),9個數(shù)相加除以9來代替中間點的像素值 blur = cv2.blur(img, (3, 3)) # 方框濾波 # normalize=True時,基本和均值一樣,可以選擇歸一化 # -1 基本為常量 box = cv2.boxFilter(img,-1,(3,3),normalize=True) # 方框濾波 # normalize=False,容易越界,因為超過255,則就255 # 比如3*3的矩陣9個數(shù),9個數(shù)相加代替中間點的像素值,超過255則為255 box = cv2.boxFilter(img,-1,(3,3),normalize=False) # 高斯濾波 # 卷積核是滿足高斯分布,相當于更重視中間的像素值 aussian = cv2.GaussianBlur(img, (5,5), 1) # 中值濾波 # 相當于用中值代替 # 比如3*3的矩陣9個數(shù),取中值來代替中間點的像素值 median = cv2.medianBlur(img, 5)
到此這篇關(guān)于Python中的OpenCV圖像閾值處理和平滑處理詳解的文章就介紹到這了,更多相關(guān)OpenCV圖像閾值處理和平滑處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python?Apschedule定時任務(wù)框架的用法詳解
apschedule是一個用python寫的定時處理框架,這篇文章主要為大家詳細介紹了Apschedule定時任務(wù)框架的用法,感興趣的小伙伴可以跟隨小編一起了解一下2023-06-06Python獲取中國節(jié)假日數(shù)據(jù)記錄入JSON文件
項目系統(tǒng)內(nèi)置的日歷應(yīng)用為了提升用戶體驗,特別設(shè)置了在調(diào)休日期顯示“休”的UI圖標功能,那么問題是這些調(diào)休數(shù)據(jù)從哪里來呢?我嘗試一種更為智能的方法:Python獲取中國節(jié)假日數(shù)據(jù)記錄入JSON文件2025-04-04Matplotlib使用Cursor實現(xiàn)UI定位的示例代碼
這篇文章主要介紹了Matplotlib使用Cursor實現(xiàn)UI定位的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03Python logging模塊寫入中文出現(xiàn)亂碼
這篇文章主要介紹了Python logging模塊寫入中文出現(xiàn)亂碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05