Python對圖片進行二值化的實現(xiàn)方法
在Python中實現(xiàn)圖像二值化主要依賴圖像處理庫(如OpenCV或PIL)。以下是兩種主流方法的詳細實現(xiàn):
方法1:使用OpenCV(推薦高性能場景)
import cv2
# 讀取圖像(支持路徑或直接讀?。?
image = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE) # 直接轉為灰度圖
# 全局閾值二值化(閾值設為128)
_, binary_image = cv2.threshold(image, 128, 255, cv2.THRESH_BINARY)
# 自適應閾值(適用于光照不均場景)
adaptive_binary = cv2.adaptiveThreshold(
image,
255,
cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
cv2.THRESH_BINARY,
11, # 鄰域尺寸(需奇數(shù))
2 # 常數(shù)偏移量
)
# 保存結果
cv2.imwrite('binary_global.jpg', binary_image)
cv2.imwrite('adaptive_binary.jpg', adaptive_binary)
方法2:使用PIL(輕量級方案)
from PIL import Image, ImageOps
# 打開圖像并轉為灰度
img = Image.open('input.jpg').convert('L')
# 手動二值化(閾值128)
binary_img = img.point(lambda p: 255 if p > 128 else 0)
# 使用內(nèi)置二值化方法
binary_img_builtin = ImageOps.colorize(
img,
black="black",
white="white",
threshold=0.5 # 0.0-1.0范圍
)
# 保存結果
binary_img.save('pil_binary.jpg')
binary_img_builtin.save('pil_builtin_binary.jpg')
關鍵參數(shù)說明
閾值選擇:
- 全局閾值:128(中值)適用于對比度均勻的圖像
- 自適應閾值:通過
adaptiveThreshold自動計算局部閾值 - Otsu方法:
cv2.THRESH_OTSU標志可自動計算最優(yōu)閾值
注意事項:
- 安裝依賴:
pip install opencv-python pillow - 輸入路徑:確保圖像文件存在或使用絕對路徑
- 顏色空間:處理前統(tǒng)一轉為灰度圖(
cv2.COLOR_BGR2GRAY) - 內(nèi)存管理:大圖像建議分塊處理
擴展優(yōu)化
- 大津法(OTSU):在
cv2.threshold中添加cv2.THRESH_OTSU標志 - 顏色二值化:對彩色 圖像各通道分別處理后合并
- 形態(tài)學操作:二值化后配合
cv2.morphologyEx優(yōu)化邊緣
以上代碼可直接復制運行,根據(jù)實際場景選擇OpenCV(高性能)或PIL(輕量級)方案。處理前建議備份原始圖像,處理后可通過matplotlib進行可視化驗證。
到此這篇關于Python對圖片進行二值化的實現(xiàn)方法的文章就介紹到這了,更多相關Python圖片二值化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
opencv python統(tǒng)計及繪制直方圖的方法
這篇文章主要介紹了opencv python統(tǒng)計及繪制直方圖的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
Python實現(xiàn)PPT/PPTX批量轉換成PDF
這篇文章主要為大家詳細介紹了如何使用Python將PowerPoint演示文稿(PPT、PPTX等)轉換為PDF文件,使演示內(nèi)容能夠在更多的設備上展示,感興趣的小伙伴可以了解下2024-01-01
Pycharm沒有報錯提示(誤觸ignore)的完美解決方案
這篇文章主要介紹了Pycharm沒有報錯提示(誤觸ignore)的解決方案,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12
python利用logging模塊實現(xiàn)根據(jù)日志級別打印不同顏色日志的代碼案例
這篇文章主要介紹了python利用logging模塊實現(xiàn)根據(jù)日志級別打印不同顏色日志,本文通過實例代碼給大家詳細講解,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12
Python XlsxWriter模塊Chart類用法實例分析
這篇文章主要介紹了Python XlsxWriter模塊Chart類用法,結合實例形式分析了Python XlsxWriter模塊Chart類功能、圖表繪制常用方法及相關操作注意事項,需要的朋友可以參考下2019-03-03

