Python-OpenCV 处理图像(八):图像二值化处理
生活随笔
收集整理的這篇文章主要介紹了
Python-OpenCV 处理图像(八):图像二值化处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
0x00. 圖像二值化
圖像二值化就是將圖像上的像素點的灰度值設置為0或255,也就是將整個圖像呈現出明顯的黑白效果。
將256個亮度等級的灰度圖像通過適當的閾值選取而獲得仍然可以反映圖像整體和局部特征的二值化圖像。
圖像的二值化有利于圖像的進一步處理,使圖像變得簡單,而且數據量減小,能凸顯出感興趣的目標的輪廓。
0x01. 圖像二值化處理
在將圖像二值化之前需要將其先灰度化,示例代碼:
import cv2.cv as cv image = cv.LoadImage('mao.jpg')new = cv.CreateImage(cv.GetSize(image), image.depth, 1) for i in range(image.height):for j in range(image.width):new[i,j] = max(image[i,j][0], image[i,j][1], image[i,j][2])cv.Threshold(new, new, 10, 255, cv.CV_THRESH_BINARY_INV) cv.ShowImage('a_window', new) cv.WaitKey(0)0x02. cv.Threshold
cv.Threshold(src, dst, threshold, maxValue, thresholdType)
函數 cvThreshold 對單通道數組應用固定閾值操作。
該函數的典型應用是對灰度圖像進行閾值操作得到二值圖像。
參數說明:
src:原始數組 (單通道 , 8-bit of 32-bit 浮點數)。 dst:輸出數組,必須與 src 的類型一致,或者為 8-bit。 threshold:閾值 maxValue:使用 CV_THRESH_BINARY 和 CV_THRESH_BINARY_INV 的最大值。 threshold_type:閾值類型 threshold_type=CV_THRESH_BINARY:如果 src(x,y)>threshold ,dst(x,y) = max_value; 否則,dst(x,y)=0; threshold_type=CV_THRESH_BINARY_INV:如果 src(x,y)>threshold,dst(x,y) = 0; 否則,dst(x,y) = max_value. threshold_type=CV_THRESH_TRUNC:如果 src(x,y)>threshold,dst(x,y) = max_value; 否則dst(x,y) = src(x,y). threshold_type=CV_THRESH_TOZERO:如果src(x,y)>threshold,dst(x,y) = src(x,y) ; 否則 dst(x,y) = 0. threshold_type=CV_THRESH_TOZERO_INV:如果 src(x,y)>threshold,dst(x,y) = 0 ; 否則dst(x,y) = src(x,y).總結
以上是生活随笔為你收集整理的Python-OpenCV 处理图像(八):图像二值化处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python-OpenCV 处理图像(七
- 下一篇: Python-OpenCV 处理图像(一