偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

OpenCV Python入門教程實(shí)際操作:圖像閾值

系統(tǒng) Linux
在本教程中,我們將介紹圖像和視頻分析的閾值。閾值的想法是進(jìn)一步簡(jiǎn)化可視數(shù)據(jù)以進(jìn)行分析。

在本教程中,我們將介紹圖像和視頻分析的閾值。閾值的想法是進(jìn)一步簡(jiǎn)化可視數(shù)據(jù)以進(jìn)行分析。首先,您可以轉(zhuǎn)換為灰度,但隨后必須考慮到灰度仍然至少具有255個(gè)值。最基本的閾值功能是根據(jù)閾值將所有內(nèi)容轉(zhuǎn)換為白色或黑色。假設(shè)我們希望閾值為125(總共255),然后將125以下的所有內(nèi)容轉(zhuǎn)換為0或黑色,將125以上的所有內(nèi)容轉(zhuǎn)換為255或白色。如果像平常一樣轉(zhuǎn)換為灰度,則將得到白色和黑色。如果不轉(zhuǎn)換為灰度,則將獲得帶閾值的圖片,但會(huì)有顏色。

盡管這聽(tīng)起來(lái)足夠好,但事實(shí)并非如此。我們將在此處介紹多個(gè)示例和不同類型的閾值說(shuō)明。我們將使用以下圖像作為示例圖像,但是可以使用自己的圖像:

[[324209]]

本書中的簡(jiǎn)短內(nèi)容是一個(gè)很好的例子,首先,背景實(shí)際上根本沒(méi)有白色,一切都是暗淡的,但是一切都是變化的。有些部分很輕,很容易閱讀,而另一些則很暗,需要聚焦很多。首先,讓我們嘗試一個(gè)簡(jiǎn)單的閾值:

retval, threshold = cv2.threshold(img, 10, 255, cv2.THRESH_BINARY)

二進(jìn)制閾值是一個(gè)簡(jiǎn)單的“或”閾值,其中像素為255或0。在許多情況下,該閾值為白色或黑色,但是我們現(xiàn)在將圖像保留為彩色,因此可能仍為彩色。這里的第一個(gè)參數(shù)是圖像。下一個(gè)參數(shù)是閾值,我們選擇10。下一個(gè)是最大值,我們將其選擇為255。接下來(lái),最后是閾值類型,我們將其選擇為THRESH_BINARY。通常,選擇閾值10會(huì)有些困難。我們選擇10,因?yàn)檫@是低光圖片,所以我們選擇低數(shù)字。通常,大約125-150的效果最好。 

  1. import cv2  
  2. import numpy as np  
  3. img = cv2.imread('linuxidc.com.jpg')  
  4. retval, threshold =  cv2.threshold(img, 12, 255,  cv2.THRESH_BINARY)  
  5. cv2.imshow('original',img)  
  6. cv2.imshow('threshold',threshold)  
  7. cv2.waitKey(0)  
  8. cv2.destroyAllWindows() 

結(jié)果:

現(xiàn)在,圖像的讀取效果稍好一些,但仍然有些混亂。從視覺(jué)上看,它是更好的方法,但是使用程序來(lái)分析它仍然很困難。讓我們看看是否可以進(jìn)一步簡(jiǎn)化它。

首先,讓我們對(duì)圖像進(jìn)行灰度處理,然后設(shè)置閾值: 

  1. import cv2  
  2. import numpy as np  
  3. grayscaled = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  
  4. retval, threshold =  cv2.threshold(grayscaled, 10, 255,  cv2.THRESH_BINARY)  
  5. cv2.imshow('original',img)  
  6. cv2.imshow('threshold',threshold)  
  7. cv2.waitKey(0)  
  8. cv2.destroyAllWindows() 

結(jié)果如下:

是的,更簡(jiǎn)單,但是我們?cè)谶@里仍然缺少很多上下文。接下來(lái),我們可以嘗試自適應(yīng)閾值,它將嘗試改變閾值,并希望解決彎曲的頁(yè)面。 

  1. import cv2  
  2. import numpy as np  
  3. img = cv2.imread('www.linuxidc.com.jpg')  
  4. grayscaled = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  
  5. th = cv2.adaptiveThreshold(grayscaled, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 115, 1)  
  6. cv2.imshow('original',img)  
  7. cv2.imshow('Adaptive threshold',th)  
  8. cv2.waitKey(0)  
  9. cv2.destroyAllWindows() 

結(jié)果如下:

還有一個(gè)可以執(zhí)行的閾值版本,稱為Otsu閾值(大津閾值)。它在這里不能很好地發(fā)揮左右,但是: 

  1. import cv2  
  2. import numpy as np  
  3. img = cv2.imread('1.jpg')  
  4. grayscaled = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  
  5. retval2,threshold2 = cv2.threshold(grayscaled,125,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)  
  6. cv2.imshow('original',img)  
  7. cv2.imshow('Otsu threshold',threshold2)  
  8. cv2.waitKey(0)  
  9. cv2.destroyAllWindows() 

結(jié)果如下:

 

 

責(zé)任編輯:龐桂玉 來(lái)源: Linux公社
相關(guān)推薦

2010-03-10 19:00:20

Pythonnext函

2010-03-09 18:55:27

Python djan

2010-03-09 09:32:20

Python網(wǎng)頁(yè)爬蟲

2010-03-05 15:07:35

Python優(yōu)化圖片

2010-03-12 15:29:19

Pythonexe

2010-05-10 10:19:28

Oracle實(shí)戰(zhàn)RMA

2010-03-16 12:39:09

python for

2010-06-01 15:54:46

MySQL-pytho

2010-03-25 17:28:41

Python配置

2010-04-14 17:06:41

Oracle安裝路徑

2010-04-16 13:59:40

Oracle數(shù)據(jù)

2010-05-18 17:39:13

MySQL alter

2010-03-31 16:11:00

Oracle啟動(dòng)

2010-04-01 13:39:43

Oracle Name

2010-04-01 14:06:13

Oracle Name

2010-05-19 10:37:06

MySQL expla

2010-04-20 11:06:33

Oracle索引

2010-06-12 13:39:33

MySQL操作blob

2010-03-17 13:14:00

Python Libr

2010-03-15 16:54:11

Python字典
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)