最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+OpenCV圖像處理——圖像二值化的實(shí)現(xiàn)

 更新時(shí)間:2020年10月24日 11:45:16   作者:蛋片雞  
這篇文章主要介紹了Python+OpenCV實(shí)現(xiàn)圖像二值化,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下

簡介:圖像二值化就是將圖像上的像素點(diǎn)的灰度值設(shè)置為0或255,也就是將整個(gè)圖像呈現(xiàn)出明顯的黑白效果的過程。

普通圖像二值化

代碼如下:

import cv2 as cv
import numpy as np

#全局閾值
def threshold_demo(image):
  gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY) #把輸入圖像灰度化
  #直接閾值化是對(duì)輸入的單通道矩陣逐像素進(jìn)行閾值分割。
  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) #把輸入圖像灰度化
  #自適應(yīng)閾值化能夠根據(jù)圖像不同區(qū)域亮度分布,改變閾值
  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)

#用戶自己計(jì)算閾值
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) #設(shè)置為WINDOW_NORMAL可以任意縮放
cv.imshow('input_image', src)
threshold_demo(src)
local_threshold(src)
custom_threshold(src)
cv.waitKey(0)
cv.destroyAllWindows()

運(yùn)行結(jié)果:

注意:

1.全局閾值

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

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

thresh參數(shù)表示閾值。

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

type參數(shù)表示閾值類型。

retval參數(shù)表示返回的閾值。若是全局固定閾值算法,則返回thresh參數(shù)值。若是全局自適應(yīng)閾值算法,則返回自適應(yīng)計(jì)算得出的合適閾值。

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

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

閾值類型:

閾值類型圖示:

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

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

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

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

補(bǔ):

cv.THRESH_OTSU和cv.THRESH_TRIANGLE也可單獨(dú)使用,不一定要寫成和固定閾值算法結(jié)合的形式。單獨(dú)寫和結(jié)合起來寫,都是自適應(yīng)閾值算法優(yōu)先。

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

2.局部閾值

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

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

maxValue參數(shù)表示使用 THRESH_BINARY 和 THRESH_BINARY_INV 的最大值.

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

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

blockSize參數(shù)表示塊大?。ㄆ鏀?shù)且大于1,比如3,5,7........ )。

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

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

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

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

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

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

order參數(shù)表表示使用此索引順序讀取a的元素,并使用此索引順序?qū)⒃胤胖玫街匦滦纬傻臄?shù)組中。

函數(shù)返回值:如果可能的話,這將是一個(gè)新的視圖對(duì)象; 否則,它會(huì)成為副本。

以上就是Python+OpenCV圖像處理——圖像二值化的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于python 圖像二值化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 快速了解python leveldb

    快速了解python leveldb

    這篇文章主要介紹了快速了解python leveldb,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • python多線程下信號(hào)處理程序示例

    python多線程下信號(hào)處理程序示例

    這篇文章主要為大家詳細(xì)介紹了python多線程下信號(hào)處理程序示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • python 簡單備份文件腳本v1.0的實(shí)例

    python 簡單備份文件腳本v1.0的實(shí)例

    下面小編就為大家?guī)硪黄猵ython 簡單備份文件腳本v1.0的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望對(duì)大家有所幫助
    2017-11-11
  • python對(duì)指定目錄下文件進(jìn)行批量重命名的方法

    python對(duì)指定目錄下文件進(jìn)行批量重命名的方法

    這篇文章主要介紹了python對(duì)指定目錄下文件進(jìn)行批量重命名的方法,涉及Python中replace及join方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • numpy.linspace函數(shù)具體使用詳解

    numpy.linspace函數(shù)具體使用詳解

    這篇文章主要介紹了numpy.linspace具體使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • python編寫簡易聊天室實(shí)現(xiàn)局域網(wǎng)內(nèi)聊天功能

    python編寫簡易聊天室實(shí)現(xiàn)局域網(wǎng)內(nèi)聊天功能

    這篇文章主要為大家詳細(xì)介紹了python編寫簡易聊天室實(shí)現(xiàn)局域網(wǎng)內(nèi)聊天功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • python基礎(chǔ)教程之對(duì)象和類的實(shí)際運(yùn)用

    python基礎(chǔ)教程之對(duì)象和類的實(shí)際運(yùn)用

    這篇文章主要介紹了python基礎(chǔ)教程之對(duì)象和類的實(shí)際運(yùn)用,本文講解對(duì)象和類的一方法技巧,例如屬性、內(nèi)置方法、self關(guān)鍵字的運(yùn)用等,需要的朋友可以參考下
    2014-08-08
  • keras獲得某一層或者某層權(quán)重的輸出實(shí)例

    keras獲得某一層或者某層權(quán)重的輸出實(shí)例

    今天小編就為大家分享一篇keras獲得某一層或者某層權(quán)重的輸出實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 在centos7中分布式部署pyspider

    在centos7中分布式部署pyspider

    PySpider:一個(gè)國人編寫的強(qiáng)大的網(wǎng)絡(luò)爬蟲系統(tǒng)并帶有強(qiáng)大的WebUI。采用Python語言編寫,分布式架構(gòu),支持多種數(shù)據(jù)庫后端,強(qiáng)大的WebUI支持腳本編輯器,任務(wù)監(jiān)視器,項(xiàng)目管理器以及結(jié)果查看器。
    2017-05-05
  • python使用socket 先讀取長度,在讀取報(bào)文內(nèi)容示例

    python使用socket 先讀取長度,在讀取報(bào)文內(nèi)容示例

    這篇文章主要介紹了python使用socket 先讀取長度,在讀取報(bào)文內(nèi)容,涉及Python socket通信報(bào)文操作相關(guān)使用技巧,需要的朋友可以參考下
    2019-09-09

最新評(píng)論

松溪县| 繁峙县| 沭阳县| 吉木乃县| 合水县| 江西省| 涡阳县| 建宁县| 公主岭市| 岱山县| 虎林市| 林芝县| 太原市| 喀喇沁旗| 鄂尔多斯市| 九龙县| 鸡东县| 石嘴山市| 分宜县| 邳州市| 莱西市| 台州市| 商南县| 安图县| 天峨县| 潢川县| 原阳县| 建瓯市| 雅江县| 和平区| 南丹县| 合阳县| 冕宁县| 高雄市| 武山县| 类乌齐县| 苏尼特右旗| 龙岩市| 犍为县| 浦东新区| 呼图壁县|