国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Python+OpenCV圖像處理——圖像二值化的實現

瀏覽:7日期:2022-07-07 11:04:14

簡介:圖像二值化就是將圖像上的像素點的灰度值設置為0或255,也就是將整個圖像呈現出明顯的黑白效果的過程。

普通圖像二值化

代碼如下:

import cv2 as cvimport numpy as np#全局閾值def threshold_demo(image): gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY) #把輸入圖像灰度化 #直接閾值化是對輸入的單通道矩陣逐像素進行閾值分割。 ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_TRIANGLE) print('threshold value %s'%ret) cv.namedWindow('binary0', cv.WINDOW_NORMAL) cv.imshow('binary0', binary)#局部閾值def local_threshold(image): gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY) #把輸入圖像灰度化 #自適應閾值化能夠根據圖像不同區域亮度分布,改變閾值 binary = cv.adaptiveThreshold(gray, 255, cv.ADAPTIVE_THRESH_GAUSSIAN_C,cv.THRESH_BINARY, 25, 10) cv.namedWindow('binary1', cv.WINDOW_NORMAL) cv.imshow('binary1', binary)#用戶自己計算閾值def custom_threshold(image): gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY) #把輸入圖像灰度化 h, w =gray.shape[:2] m = np.reshape(gray, [1,w*h]) mean = m.sum()/(w*h) print('mean:',mean) ret, binary = cv.threshold(gray, mean, 255, cv.THRESH_BINARY) cv.namedWindow('binary2', cv.WINDOW_NORMAL) cv.imshow('binary2', binary)src = cv.imread(’E:/imageload/kobe.jpg’)cv.namedWindow(’input_image’, cv.WINDOW_NORMAL) #設置為WINDOW_NORMAL可以任意縮放cv.imshow(’input_image’, src)threshold_demo(src)local_threshold(src)custom_threshold(src)cv.waitKey(0)cv.destroyAllWindows()

運行結果:

Python+OpenCV圖像處理——圖像二值化的實現

注意:

1.全局閾值

①OpenC的threshold函數進行全局閾值。其函數原型為:threshold(src, thresh, maxval, type[, dst]) -> retval, dst

src參數表示輸入圖像(多通道,8位或32位浮點)。

thresh參數表示閾值。

maxval參數表示與THRESH_BINARY和THRESH_BINARY_INV閾值類型一起使用設置的最大值。

type參數表示閾值類型。

retval參數表示返回的閾值。若是全局固定閾值算法,則返回thresh參數值。若是全局自適應閾值算法,則返回自適應計算得出的合適閾值。

dst參數表示輸出與src相同大小和類型以及相同通道數的圖像。

②type參數閾值類型這部分參考博客:https://blog.csdn.net/iracer/article/details/49232703 ,寫的很不錯。

閾值類型:

Python+OpenCV圖像處理——圖像二值化的實現

閾值類型圖示:

Python+OpenCV圖像處理——圖像二值化的實現

③type參數單獨選擇上述五種閾值類型時,是固定閾值算法,效果比較差。

此外還有自適應閾值算法:(自適應計算合適的閾值,而不是固定閾值)

比如結合cv.THRESH_OTSU,寫成cv.THRESH_BINARY | cv.THRESH_OTSU。例子:ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) #大律法,全局自適應閾值,第二個參數值0可改為任意數字但不起作用。

比如結合cv.THRESH_TRIANGLE,寫成cv.THRESH_BINARY | cv.THRESH_TRIANGLE。例子:ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_TRIANGLE) #TRIANGLE法,全局自適應閾值,第二個參數值0可改為任意數字但不起作用,適用于單個波峰。

補:

cv.THRESH_OTSU和cv.THRESH_TRIANGLE也可單獨使用,不一定要寫成和固定閾值算法結合的形式。單獨寫和結合起來寫,都是自適應閾值算法優先。

例子:ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_OTSU) #大律法 ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_TRIANGLE) #TRIANGLE法

2.局部閾值

OpenCV的adaptiveThreshold函數進行局部閾值。函數原型為:adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C[, dst]) -> dst

src參數表示輸入圖像(8位單通道圖像)。

maxValue參數表示使用 THRESH_BINARY 和 THRESH_BINARY_INV 的最大值.

adaptiveMethod參數表示自適應閾值算法,平均 (ADAPTIVE_THRESH_MEAN_C)或高斯(ADAPTIVE_THRESH_GAUSSIAN_C)。

thresholdType參數表示閾值類型,必須為THRESH_BINARY或THRESH_BINARY_INV的閾值類型。

blockSize參數表示塊大小(奇數且大于1,比如3,5,7........ )。

C參數是常數,表示從平均值或加權平均值中減去的數。 通常情況下,這是正值,但也可能為零或負值。

補:在使用平均和高斯兩種算法情況下,通過計算每個像素周圍blockSize x blockSize大小像素塊的加權均值并減去常量C即可得到自適應閾值。如果使用平均的方法,則所有像素周圍的權值相同;如果使用高斯的方法,則每個像素周圍像素的權值則根據其到中心點的距離通過高斯方程得到。

參考:https://blog.csdn.net/guduruyu/article/details/68059450

3.numpy的reshape函數是給數組一個新的形狀而不改變其數據,函數原型:reshape(a, newshape, order=’C’)

a參數表示需要重新形成的原始數組。

newshape參數表示int或int類型元組(tuple),若為(1, 3),表示生成的新數組是1行3列。

order參數表表示使用此索引順序讀取a的元素,并使用此索引順序將元素放置到重新形成的數組中。

函數返回值:如果可能的話,這將是一個新的視圖對象; 否則,它會成為副本。

以上就是Python+OpenCV圖像處理——圖像二值化的實現的詳細內容,更多關于python 圖像二值化的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 99在线在线视频免费视频观看 | 成人免费视频在 | 成人观看免费大片在线观看 | 欧美a级完整在线观看 | 国产精品美女免费视频大全 | 成人18视频在线 | 暖暖视频日韩欧美在线观看 | 在线国产一区二区三区 | 高清欧美不卡一区二区三区 | 国产精品久久久久久麻豆一区 | 国产美女精品三级在线观看 | 清纯唯美综合网 | 欧美一区二区视频在线观看 | 欧美一级毛片日本 | 成 人免费视频l免费观看 | 中文精品爱久久久国产 | 久久亚洲精品成人综合 | 九九久久精品这里久久网 | 成人免费夜片在线观看 | 亚洲三级理论 | 欧美成人高清性色生活 | 50岁老女人毛片一级亚洲 | 亚洲第一页在线视频 | 毛片在线视频在线播放 | 亚洲高清免费在线观看 | 大量真实偷拍情侣视频野战 | 色综合久久88一加勒比 | 丁香伊人五月综合激激激 | a级毛片在线看日本 | 成人怡红院 | 中文字幕精品视频在线 | 欧美va在线播放免费观看 | 在线国产一区二区 | 久色网址| 岛国毛片在线观看 | 久久好看视频 | 天堂8中文在线最新版在线 天堂8资源8在线 | 欧美一区二区三区视频 | 国产三级精品三级国产 | 国产成人做受免费视频 | 中文字幕毛片 |