中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

深圳網(wǎng)站建設(shè)哪家公司好我贏網(wǎng)客服系統(tǒng)

深圳網(wǎng)站建設(shè)哪家公司好,我贏網(wǎng)客服系統(tǒng),羅湖網(wǎng)站建設(shè)聯(lián)系電話,深圳市網(wǎng)站首頁(yè)1 基本概念 CV2中使用閾值的作用是將灰度圖像二值化,即將灰度圖像的像素值根據(jù)一個(gè)設(shè)定的閾值分成黑白兩部分。閾值處理可以用于圖像分割、去除噪聲、增強(qiáng)圖像對(duì)比度等多個(gè)領(lǐng)域。例如,在物體檢測(cè)和跟蹤中,可以通過(guò)對(duì)圖像進(jìn)行閾值處理來(lái)提取目…

1 基本概念

CV2中使用閾值的作用是將灰度圖像二值化,即將灰度圖像的像素值根據(jù)一個(gè)設(shè)定的閾值分成黑白兩部分。閾值處理可以用于圖像分割、去除噪聲、增強(qiáng)圖像對(duì)比度等多個(gè)領(lǐng)域。例如,在物體檢測(cè)和跟蹤中,可以通過(guò)對(duì)圖像進(jìn)行閾值處理來(lái)提取目標(biāo)區(qū)域;在圖像增強(qiáng)中,可以使用閾值處理來(lái)增強(qiáng)圖像的輪廓和細(xì)節(jié)等。
閾值處理可以使用cv2.threshold()函數(shù)來(lái)完成。

retval, dst = cv2.threshold(src, thresh, maxval, type)

其中,參數(shù)解釋如下:

  • src:輸入圖像,可以是灰度圖像或彩色圖像。
  • thresh:設(shè)定的閾值。
  • maxval:二值化后的最大值。當(dāng)typecv2.THRESH_BINARYcv2.THRESH_BINARY_INV時(shí),像素值大于閾值的部分會(huì)設(shè)置為maxval,否則會(huì)設(shè)置為0。
  • type:二值化操作的類型,包括:
    • cv2.THRESH_BINARY:二值化操作,大于閾值的像素值設(shè)置為maxval,小于等于閾值的像素值設(shè)置為0。
    • cv2.THRESH_BINARY_INV:反向二值化操作,大于閾值的像素值設(shè)置為0,小于等于閾值的像素值設(shè)置為maxval。
    • cv2.THRESH_TRUNC:截?cái)嗖僮?#xff0c;大于閾值的像素值設(shè)置為閾值,小于等于閾值的像素值保持不變。
    • cv2.THRESH_TOZERO:像素值小于等于閾值的設(shè)置為0,大于閾值的保持不變。
    • cv2.THRESH_TOZERO_INV:像素值大于等于閾值的設(shè)置為0,小于閾值的保持不變。

cv2.threshold()函數(shù)的返回值為一個(gè)元組,包括:

  • retval:實(shí)際使用的閾值。
  • dst:二值化后的輸出圖像。

2 二值化處理

灰度圖像

通過(guò)對(duì)灰度圖像進(jìn)行二值處理,可以在圖形中只保留兩種顏色,通常我們?cè)O(shè)定為255(白色)和0(黑色),但也可根據(jù)需求設(shè)置為黑色和灰色的二值圖像,如:

import cv2  
img = cv2.imread("lenacolor.png", 0)  # 將圖像讀成灰度圖像  
t1, dst1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)  # 二值化閾值處理  
t2, dst2 = cv2.threshold(img, 127, 200, cv2.THRESH_BINARY)  
cv2.imshow('img', img)  
cv2.imshow('dst1', dst1)  
cv2.imshow('dst2', dst2)  
cv2.waitKey()  
cv2.destroyAllWindows()

image.png

彩色圖像

同樣這一方法可用于彩色圖像,通過(guò)對(duì)某一通道進(jìn)行二值化,使圖像的顏色變得更加夸張,如:

import cv2  img = cv2.imread('lenacolor.png')  
b, g, r = cv2.split(img)  # 將BGR通道分離  # 對(duì)紅色通道進(jìn)行閾值處理  
t1, r = cv2.threshold(r, 127, 255, cv2.THRESH_BINARY)  img_after = cv2.merge([b, g, r])  cv2.imshow('original', img)  
cv2.imshow('threshold', img_after)  
cv2.waitKey(0)  
cv2.destroyAllWindows()

image.png

反二值化處理

反二值化處理(Inverse Thresholding)是二值化處理的一種變體,其作用是將灰度圖像的像素值根據(jù)一個(gè)設(shè)定的閾值分成兩部分,但是與普通二值化處理不同的是,反二值化處理將像素值大于閾值的部分設(shè)置為0,小于等于閾值的部分設(shè)置為最大像素值,即產(chǎn)生一個(gè)反色的二值化圖像。代碼中type需要設(shè)置為cv2.THRESH_BINARY_INV

防止視覺(jué)疲勞,后面的圖換了一下示例圖像

3 零處理

低于閾值零處理

低于閾值的部分會(huì)被處理為0,此時(shí)填入的maxval無(wú)效
對(duì)灰度圖來(lái)說(shuō),低于閾值的部分將會(huì)被處理為黑色;對(duì)于RGB彩圖來(lái)說(shuō),低于閾值的部分圖像會(huì)變暗。

import cv2  
img1 = cv2.imread("test.png", 0)  # 將圖像讀成灰度圖像  
img2 = cv2.imread("test.png")  b, g, r = cv2.split(img2)  # 將BGR通道分離  t1, dst1 = cv2.threshold(img1, 127, 255, cv2.THRESH_TOZERO)  # 低于閾值零處理  
cv2.imshow('img1', img1)    
cv2.imshow('dst1', dst1)    t2, b = cv2.threshold(b, 127, 255, cv2.THRESH_TOZERO)  # 低于閾值零處理  
img_after = cv2.merge([b, g, r])  
cv2.imshow('img2', img2)  
cv2.imshow('img_after', img_after)    cv2.waitKey()  
cv2.destroyAllWindows()

image.png

超出閾值零處理

類似反二值化處理。將超出某一閾值的部分進(jìn)行歸零處理。超出閾值零處理可以在一些特定的場(chǎng)合下使用,例如在一些需要保留一定程度的圖像細(xì)節(jié)的場(chǎng)合,超出閾值零處理可以避免將過(guò)多的像素值直接設(shè)置為0或最大像素值,從而使圖像保留更多的細(xì)節(jié)信息。

4 截?cái)嗵幚?/h1>

該方法傳入的type是cv2.THRESH_TRUNC,代碼結(jié)構(gòu)與前面高度重合,此處不再貼代碼。
截?cái)嗵幚硎嵌祷幚淼囊环N變體,其作用是將灰度圖像的像素值根據(jù)一個(gè)設(shè)定的閾值分成兩部分,但是與普通的二值化處理不同的是,超出閾值的部分不會(huì)被設(shè)置為0或最大像素值,而是被截?cái)酁殚撝当旧怼?br /> 圖像截?cái)嗵幚硗ǔ_m合用于需要保留圖像主要信息的場(chǎng)合,而又不需要進(jìn)行明顯的二值化操作的場(chǎng)合。在這種情況下,截?cái)嗵幚砜梢允沟脠D像保留更多的灰度級(jí),從而能夠更好地保留圖像中的細(xì)節(jié)和信息,同時(shí)又能夠去除一些噪聲或者不需要的部分。

5 自適應(yīng)處理

自適應(yīng)閾值處理是圖像處理中的一種常見(jiàn)操作,可以根據(jù)圖像局部的灰度特征來(lái)自適應(yīng)地確定閾值,以達(dá)到更好的二值化效果。在OpenCV中,可以使用cv2.adaptiveThreshold()函數(shù)進(jìn)行自適應(yīng)閾值處理。
相比于閾值處理,自適應(yīng)處理具有以下優(yōu)點(diǎn):

  1. 自適應(yīng)處理可以根據(jù)局部像素的灰度值特征來(lái)確定二值化閾值,從而適應(yīng)圖像的不同區(qū)域和不同光照條件,能夠更好地突出圖像中的目標(biāo)物體。
  2. 自適應(yīng)處理可以在處理過(guò)程中保留更多的細(xì)節(jié)信息,減少因閾值過(guò)大或過(guò)小而造成的信息丟失,提高圖像處理的準(zhǔn)確性。
  3. 自適應(yīng)處理適用于復(fù)雜背景下的目標(biāo)物體分割,特別是在背景區(qū)域灰度分布不均的情況下,能夠更好地處理背景區(qū)域和目標(biāo)區(qū)域的差異。

自適應(yīng)處理相比于閾值處理具有更好的適應(yīng)性和靈活性,可以在不同的圖像處理場(chǎng)景中應(yīng)用。當(dāng)圖像的灰度分布不均、光照條件不同或需要保留更多的細(xì)節(jié)信息時(shí),自適應(yīng)處理通常是更好的選擇。

cv2.adaptiveThreshold()函數(shù)的基本語(yǔ)法如下:

dst = cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)

其中:

  • src:輸入圖像,必須為灰度圖像。
  • maxValue:二值化后的最大值。
  • adaptiveMethod:自適應(yīng)閾值處理的方法,包括:
    • cv2.ADAPTIVE_THRESH_MEAN_C:基于均值的自適應(yīng)閾值處理。
    • cv2.ADAPTIVE_THRESH_GAUSSIAN_C:基于高斯加權(quán)平均值的自適應(yīng)閾值處理。
  • thresholdType:閾值類型,與普通二值化處理相同,包括:
    • cv2.THRESH_BINARY:二值化操作,大于閾值的像素值設(shè)置為maxValue,小于等于閾值的像素值設(shè)置為0。
    • cv2.THRESH_BINARY_INV:反向二值化操作,大于閾值的像素值設(shè)置為0,小于等于閾值的像素值設(shè)置為maxValue
  • blockSize:每個(gè)像素點(diǎn)周圍用來(lái)計(jì)算閾值的像素?cái)?shù)。必須是奇數(shù)。
  • C:閾值校正值。該值會(huì)被加到均值或加權(quán)平均值上,用于調(diào)整閾值。

cv2.adaptiveThreshold()函數(shù)的返回值為二值化后的輸出圖像。

仍以上一張圖像為例:

import cv2  image_Gray = cv2.imread("test.png", 0)  # 自適應(yīng)閾值的計(jì)算方法為cv2.ADAPTIVE_THRESH_MEAN_C  
athdMEAM = cv2.adaptiveThreshold\  (image_Gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 5, 0)  
# 自適應(yīng)閾值的計(jì)算方法為cv2.ADAPTIVE_THRESH_GAUSSIAN_C  
athdGAUS = cv2.adaptiveThreshold\  (image_Gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY, 5, 0)  
# 顯示自適應(yīng)閾值處理的結(jié)果  
cv2.imshow("MEAN_C", athdMEAM)  
cv2.imshow("GAUSSIAN_C", athdGAUS)  
cv2.waitKey()  
cv2.destroyAllWindows()

image.png
可以看出自適應(yīng)閾值似乎保留了更多細(xì)節(jié),但此處效果并不好,也就說(shuō)明自適應(yīng)并不能完全代替人工選擇。(對(duì)于人臉圖像,該方法的效果會(huì)比上圖更好一些)

6 Ostu方法

Otsu’s method 是一種經(jīng)典的自適應(yīng)閾值處理算法,可以自動(dòng)確定圖像的二值化閾值。該算法可以將圖像中的像素值分為兩部分,從而將圖像轉(zhuǎn)換為二值圖像。在 OpenCV 中,可以使用cv2.threshold()函數(shù)進(jìn)行 Otsu’s method 處理。在type中,輸入對(duì)應(yīng)的方法名+cv2.THRESH_OTSU即可調(diào)用該方法。該方法的存在也是threshold將閾值作為返回值的意義所在。
在 Otsu’s method 中,不需要預(yù)先指定閾值,而是通過(guò)計(jì)算圖像灰度直方圖和類間方差來(lái)確定閾值。具體來(lái)說(shuō),該方法會(huì)計(jì)算每一個(gè)像素灰度值作為閾值時(shí),將圖像分為前景和背景兩部分的類間方差,然后選取類間方差最大的像素灰度值作為二值化閾值。

import cv2img = cv2.imread('test.png', 0)
ret, thresh = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)cv2.imshow('original', img)
cv2.imshow('Otsu threshold', thresh)
cv2.waitKey(0)
cv2.destroyAllWindows()

image.png

http://www.risenshineclean.com/news/50977.html

相關(guān)文章:

  • window2003iis建好的網(wǎng)站營(yíng)銷型網(wǎng)站建設(shè)論文
  • WordPress主題沒(méi)有刪除站內(nèi)優(yōu)化seo
  • 做網(wǎng)站北京重慶seo技術(shù)教程博客
  • 長(zhǎng)沙優(yōu)化網(wǎng)站技術(shù)廠家seo網(wǎng)站推廣有哪些
  • 網(wǎng)站建設(shè)和錢外貿(mào)網(wǎng)站免費(fèi)推廣b2b
  • 網(wǎng)站如何能讓百度收錄網(wǎng)站數(shù)據(jù)
  • 做社區(qū)網(wǎng)站用什么程序?qū)幉╯eo排名外包
  • 網(wǎng)站建設(shè)資訊版塊如何做用戶運(yùn)營(yíng)百度網(wǎng)盤搜索神器
  • 低代碼開(kāi)發(fā)平臺(tái) 開(kāi)源文大俠seo博客
  • 網(wǎng)站制作網(wǎng)站建設(shè)項(xiàng)目規(guī)劃書軟文平臺(tái)有哪些
  • 網(wǎng)站的建站流程個(gè)人建站
  • 網(wǎng)站做淘寶客aso優(yōu)化服務(wù)站
  • 做母嬰產(chǎn)品的網(wǎng)站寧波網(wǎng)站建設(shè)網(wǎng)站排名優(yōu)化
  • 武漢商城網(wǎng)站制作西安疫情最新通知
  • 建筑外觀設(shè)計(jì)網(wǎng)站推薦淘寶標(biāo)題優(yōu)化網(wǎng)站
  • 做昆特牌的網(wǎng)站重慶seo教程
  • 修改數(shù)據(jù)庫(kù)密碼 進(jìn)不了網(wǎng)站后臺(tái)石家莊網(wǎng)站建設(shè)
  • 園嶺網(wǎng)站建設(shè)附近有沒(méi)有學(xué)電腦培訓(xùn)的
  • 做接口的網(wǎng)站廣告?zhèn)髅焦窘?jīng)營(yíng)范圍
  • java 網(wǎng)站開(kāi)發(fā) 順序刷死粉網(wǎng)站推廣
  • 湛江企業(yè)網(wǎng)站建站模板靠譜的拉新平臺(tái)
  • 網(wǎng)站后臺(tái)更新怎么做可口可樂(lè)軟文范例
  • 山東疫情最新消息今天上海優(yōu)化網(wǎng)站seo公司
  • 鄭州百度網(wǎng)站優(yōu)化排名ios微信上的pdf亂碼
  • 網(wǎng)站建設(shè)解說(shuō)詞百度手機(jī)助手下載2022官方正版
  • 酒店vi設(shè)計(jì)抖音seo培訓(xùn)
  • 網(wǎng)站怎么做微信支付寶電商網(wǎng)站開(kāi)發(fā)平臺(tái)
  • 免費(fèi)網(wǎng)站開(kāi)發(fā)公司百度競(jìng)價(jià)可以自學(xué)嗎
  • 如何注冊(cè)個(gè)人網(wǎng)站cnn頭條新聞
  • 自助建站平臺(tái)便宜營(yíng)銷型網(wǎng)站特點(diǎn)