導航:首頁 > 編程語言 > python圖像轉換二值圖

python圖像轉換二值圖

發布時間:2023-08-19 15:56:04

1. 怎樣使用python圖像處理

Python圖像處理是一種簡單易學,功能強大的解釋型編程語言,它有簡潔明了的語法,高效率的高層數據結構,能夠簡單而有效地實現面向對象編程,下文進行對Python圖像處理進行說明。
當然,首先要感謝「戀花蝶」,是他的文章「用Python圖像處理 」 幫我堅定了用Python和PIL解決問題的想法,對於PIL的一些介紹和基本操作,可以看看這篇文章。我這里主要是介紹點我在使用過程中的經驗。
PIL可以對圖像的顏色進行轉換,並支持諸如24位彩色、8位灰度圖和二值圖等模式,簡單的轉換可以通過Image.convert(mode)函數完 成,其中mode表示輸出的顏色模式。例如''L''表示灰度,''1''表示二值圖模式等。
但是利用convert函數將灰度圖轉換為二值圖時,是採用固定的閾 值127來實現的,即灰度高於127的像素值為1,而灰度低於127的像素值為0。為了能夠通過自定義的閾值實現灰度圖到二值圖的轉換,就要用到 Image.point函數。
深度剖析Python語法功能
深度說明Python應用程序特點
對Python資料庫進行學習研究
Python開發人員對Python經驗之談
對Python動態類型語言解析

Image.point函數有多種形式,這里只討論Image.point(table, mode),利用該函數可以通過查表的方式實現像素顏色的模式轉換。其中table為顏色轉換過程中的映射表,每個顏色通道應當有256個元素,而 mode表示所輸出的顏色模式,同樣的,''L''表示灰度,''1''表示二值圖模式。
可見,轉換過程的關鍵在於設計映射表,如果只是需要一個簡單的箝位值,可以將table中高於或低於箝位值的元素分別設為1與0。當然,由於這里的table並沒有什麼特殊要求,所以可以通過對元素的特殊設定實現(0, 255)范圍內,任意需要的一對一映射關系。
示例代碼如下:
import Image # load a color image im = Image.open(''fun.jpg'') # convert to grey level image Lim = im.convert(''L'') Lim.save(''fun_Level.jpg'') # setup a converting table with constant threshold threshold = 80 table = [] for i in range(256): if i < threshold: table.append(0) else: table.append(1) # convert to binary image by the table bim = Lim.point(table, ''1'') bim.save(''fun_binary.jpg'')

IT部分通常要完成的任務相當繁重但支撐這些工作的資源卻很少,這已經成為公開的秘密。任何承諾提高編碼效率、降低軟體總成本的IT解決方案都應該進行 周到的考慮。Python圖像處理所具有的一個顯著優勢就是可以在企業的軟體創建和維護階段節約大量資金,而這兩個階段的軟體成本佔到了軟體整個生命周期中總成本 的50%到95%。
Python清晰可讀的語法使得軟體代碼具有異乎尋常的易讀性,甚至對那些不是最初接觸和開發原始項目的程序員都 能具有這樣的強烈感覺。雖然某些程序員反對在Python代碼中大量使用空格。
不過,幾乎人人都承認Python圖像處理的可讀性遠勝於C或者Java,後兩 者都採用了專門的字元標記代碼塊結構、循環、函數以及其他編程結構的開始和結束。提倡Python的人還宣稱,採用這些字元可能會產生顯著的編程風格差 異,使得那些負責維護代碼的人遭遇代碼可讀性方面的困難。轉載

2. python怎麼用PIL模塊處理BMP圖像 二值化

Pillow 提供了一個 .load() 方法,用來處理像素。圖片嘛,當然是二維的,有寬和高的。

pixels = image.load()
for x in ramge(image.width):
for y in range(image.height):
pixsels[x, y] = 255 if pixsels[x, y] > 125 else 0

當然了,只是最簡單的二值化的話,直接 image.convert('1') 就可以了 :-)

3. 數字圖像處理基於Python如何數一張圖片的物體有多少個

如果要使用Python進行數字圖像處理,可以使用OpenCV庫來數一張圖片的物體有多少個。

下面是一個簡單的例子,可以使用OpenCV庫來數一張圖片中的小球數量:
import cv2

# 讀取圖片
img = cv2.imread("balls.jpg")

# 將圖片轉換為灰度圖
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 使用閾值分割法,得到二值圖
thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)[1]

# 尋找圖像中的輪廓
cnts = cv2.findContours(thresh.(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = imutils.grab_contours(cnts)

# 顯示圖像中的輪廓數量
print("圖像中的輪廓數量:{}".format(len(cnts)))

閱讀全文

與python圖像轉換二值圖相關的資料

熱點內容
android自動化環境 瀏覽:251
androidrealm加密 瀏覽:511
地圖正在解壓縮是什麼意思 瀏覽:215
電腦軟體能放在文件夾嗎 瀏覽:784
uc伺服器怎麼打開 瀏覽:363
net怎麼編譯 瀏覽:242
我的世界187伺服器地址ip 瀏覽:953
拍賣房價的演算法 瀏覽:438
linux內核編譯視頻教程 瀏覽:881
程序員厚黑 瀏覽:207
如何在閑魚淘二手安卓機 瀏覽:175
怎麼下載晨星app 瀏覽:132
兩台伺服器如何同步內容 瀏覽:808
伺服器共用一個ip有什麼壞處 瀏覽:461
go加密exe 瀏覽:606
pdf改分欄 瀏覽:123
python執行怎麼寫 瀏覽:766
遇見她app怎麼加好友 瀏覽:548
手機怎麼設置app強制提醒 瀏覽:77
怎樣不用海綿做解壓玩具 瀏覽:81