圖片讀寫
Pillow
對于圖片的簡單讀寫倒信,常使用pillow進行操作晤愧,需要安裝:pip install pillow
,可以用來畫圖勿侯,或者進行圖片讀取拓瞪、裁剪、識別等操作的第三方模塊
- Image下:
讀取圖片(一般用Image
方法助琐,即from PIL import Image
)
1.open()
:打開圖片,舉例:image = Image.open("code.jpg")
2.show()
:顯示圖片(我們真正點開文件)祭埂,舉例:image.show()
3.save()
:保存圖片,舉例:image.save("aaa.jpg")
弓柱,其還有別的參數(shù)如保存格式format
、圖片質(zhì)量quality
侧但,比如我們要以jpg格式保存矢空,并且圖片質(zhì)量是原來的百分之80,:image.save("aaa.jpg", format="jpeg", quality=80)
4.getpixel ()
:某一像素點的顏色喉誊,傳入的像素位置是元組撒轮,舉例:image.getpixel((0,1))
5.thumbnail()
:設(shè)置圖片尺寸术徊,舉例:image.thumbnail((128,128))
6.size
:獲取圖片尺寸心包,舉例:image.size
百炬,返回元組類型滴须,兩個值分別為寬和高 - ImageGrab下:
對圖片操作
1.截圖栏笆,四個參數(shù)代表左上角坐標(biāo)和右下角坐標(biāo)垃你,舉例:
image = ImageGrab.grab((0,0,100,100)) #截取(0,0)到(100,100)坐標(biāo)圖片
image.save('a.jpg')
讀取黑白二維碼趾娃,并用數(shù)字表示示例
from PIL import Image
image = Image.open('1.png')
# print(image.size)
with open("1.txt", 'w') as f:
for i in range(image.size[0]):
for j in range(image.size[1]):
x = image.getpixel((i, j)) #行對應(yīng)高缭嫡,列對應(yīng)寬
if x[0]+x[1]+x[2] == 0: #黑的地方置1
f.write(str(1))
else:
f.write(str(0))
f.write('\n')
PILLOW讀取文件出錯:IOError: image file is truncated
執(zhí)行這兩句命令:
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
驗證碼生成示例
https://www.cnblogs.com/renpingsheng/p/7482680.html
更多參考
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014320027235877860c87af5544f25a8deeb55141d60c5000
https://baijiahao.baidu.com/s?id=1595108270577043146&wfr=spider&for=pc
opencv
使用opencv讀取圖片也是一個很好的選擇,而且讀出來的數(shù)據(jù)直接是數(shù)組格式抬闷,在深度學(xué)習(xí)的圖像處理中經(jīng)常用到妇蛀,這塊可以參考我的另一篇文章:Python opencv操作圖像
Gif圖
可以使用imageio
模塊(pip install imageio
)下的mimsave
方法,舉例:
from imageio import mimsave
from glob import glob
mimsave("aaa.gif", [cv2.imread(each) for each in glob("./*.jpg")], fps=50)
# 用opencv讀取當(dāng)前路徑的所有圖片笤成,并以一秒50張的幀數(shù)保存成gif文件
文字識別
可以使用pytesseract模塊
1.image_to_string(image)
:識別圖片內(nèi)容评架,例如:text = pytesseract.image_to_string(image)
,此時text
就是讀取圖片后獲得的字符串了
注:
以上基于安裝tesseract-ocr
的環(huán)境炕泳,該軟件只有命令行
使用方法:
tesseract 要識別的圖片 內(nèi)容寫到哪個文件 -l chi_sim+equ+eng
(第一個代表中文簡體纵诞、第二個代表數(shù)學(xué)公式、第三個代表英文)
舉例:
tesseract code.jpg 1.txt -l chi_sim+equ+eng
注2:
當(dāng)然浙芙,圖片文字識別方法很多茁裙,還可以使用百度文字識別api晤锥,其在漢字識別上挺不錯女轿,一天能用500次,參見網(wǎng)址:
https://console.bce.baidu.com/ai/#/ai/ocr/overview/index