04-图像的阈值操作
生活随笔
收集整理的這篇文章主要介紹了
04-图像的阈值操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對圖像的閾值操作
import cv2 import matplotlib.pyplot as pltimg = cv2.imread('E:/Jupyter_workspace/study/data/cat.png',1) ret, thresh1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY) ret, thresh2 = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV) ret, thresh3 = cv2.threshold(img,127,255,cv2.THRESH_TRUNC) ret, thresh4 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO) ret, thresh5 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)titles = ['Original Image','BINARY','BINARY_INV','TRUNC','TOZERO','TOZERO_INV'] images = [img,thresh1,thresh2,thresh3,thresh4,thresh5]for i in range(6):plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')#這里的(2,3,i+1)表示兩行三列來顯示這六種照片,i+1表示每個照片的位置plt.title(titles[i])plt.xticks([]),plt.yticks([])plt.show()ret,dst = cv2.threshold(src,thresh,maxval,type)
ret:閾值
dst:輸出圖
src:輸入圖,只能輸入單通道圖像,通常來說為灰度圖
thresh:閾值,為一個常見的數值,通常設置為127,因為取值范圍是[0,255]
maxval:當像素值超過了閾值(或小于閾值,根據type來決定),所賦予的值,一般為255
type:二值化操作的類型,包含以下五種類型
| cv2.THRESH_BINARY | 超過閾值的部分取maxval(最大值),否則取0 | 大于thresh的值取maxval | 越亮取maxval,較暗取為0黑——亮變白,暗變0黑 |
| cv2.THRESH_BINARY_INV | 不超過閾值的部分取maxval(最大值),否則取0 | THRESH_BINARY的反轉方法 | 小于thresh的值取maxval——暗變白,亮變0黑 |
| cv2.THRESH_TRUNC | 大于閾值部分設置為閾值,否則不變 | 最大的最亮的也只能是thresh閾值 | 亮的地方變thresh閾值,暗的地方不變 |
| cv2.THRESH_TOZERO | 大于閾值部分不變,否則設為0 | 大于閾值的不變,小于等于閾值的為0 | 亮的地方不變,暗的地方變0黑 |
| cv2.THRESH_TOZERO_INV | 小于閾值部分不變,否則設為0 | 小于等于閾值的不變,大于閾值的為0 | 暗的不變,亮的變0暗 |
總結
以上是生活随笔為你收集整理的04-图像的阈值操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 公交车广告多少钱啊?
- 下一篇: 05-图像的平滑处理(不同的滤波操作)