python图片二值化处理百度图api_Python+百度AI实现图像处理-附源码
開始的話:百度AI新增加了圖像處理的api,相信不少朋友用PS處理圖片,而今天我們用Python+百度ai來解決。
---------------------------------------------
前言:
百度ai圖像處理網站:圖像處理-百度AI開放平臺(里面有百度官方提供的圖片測試效果)
python版本3.6,別的版本也可以
過程:
首先你需要獲取百度ai的access_token,通過API Key和Secret Key獲取的access_token,AK和SK需要注冊賬號申請,官方在技術文檔中給了python2.*版本獲取access_token的代碼,需要用到urllib2模塊,但是在python3.3后urllib2已經不能再用,只能用urllib.request來代替,所以修改代碼為:
#!/usr/bin/env python3.6
#coding=utf-8
importurllib, sys
importurllib.request
importssl
# client_id 為官網獲取的AK, client_secret 為官網獲取的SK
host = 'Content-Type', 'application/json; charset=UTF-8')
response = urllib.request.urlopen(request)
content = response.read()
if(content):
print(type(content)) #
content_str = str(content, encoding="utf-8")
###eval將字符串轉換成字典
content_dir = eval(content_str)
access_token = content_dir['access_token']
'''print(access_token)'''
---------------------------------------------
這樣你就可以獲取到access_token,然后在api請求代碼中調用,因為百度ai接口返回的值為處理后圖片的Base64編碼,所以需要base64模塊。代碼比較亂,身為一個懶人能用就行,哈哈哈。
# encoding:utf-8
importbase64
importGetToken
importurllib, sys
importurllib.request
datafile = '1'
line = '======================================='
message = '''
=======================================
圖片處理工具(ps:預處理圖片文件類型支持PNG.JPEG.JPG.BMP,圖片大小不超過2M)
輸入1圖像無損放大
輸入2圖像去霧
輸入3圖像對比度增強
=======================================
'''
print(message)
'''
圖像無損放大
'''
defimage_quality_enhance():
fromurl = input("請輸入要處理的圖片路徑:")
tourl = input("請輸入要保存圖片的路徑:")
request_url = # 二進制方式打開圖片文件
f = open(fromurl, 'rb')
img = base64.b64encode(f.read())
params = {"image":img}
params = urllib.parse.urlencode(params).encode(encoding='UTF8')
access_token = GetToken.access_token
request_url = request_url + "?access_token="+ access_token
request = urllib.request.Request(url=request_url, data=params)
request.add_header('Content-Type', 'application/x-www-form-urlencoded')
response = urllib.request.urlopen(request)
content = response.read()
ifcontent:
'''print(content)'''
content_str = str(content, encoding="utf-8")
###eval將字符串轉換成字典
content_dir = eval(content_str)
image = content_dir['image']
sss = image
'''print(len(sss))'''
imagedata = base64.b64decode(sss)
'''print(imagedata)'''
file = open(tourl, "wb")
file.write(imagedata)
file.close()
print("處理完成")
'''
圖像去霧
'''
defdehaze():
fromurl = input("請輸入要處理的圖片路徑:")
tourl = input("請輸入要保存圖片的路徑:")
request_url = # 二進制方式打開圖片文件
f = open(fromurl, 'rb')
img = base64.b64encode(f.read())
params = {"image": img}
params = urllib.parse.urlencode(params).encode(encoding='UTF8')
access_token = GetToken.access_token
request_url = request_url + "?access_token="+ access_token
request = urllib.request.Request(url=request_url, data=params)
request.add_header('Content-Type', 'application/x-www-form-urlencoded')
response = urllib.request.urlopen(request)
content = response.read()
ifcontent:
'''print(content)'''
content_str = str(content, encoding="utf-8")
###eval將字符串轉換成字典
content_dir = eval(content_str)
image = content_dir['image']
sss = image
'''print(len(sss))'''
imagedata = base64.b64decode(sss)
'''print(imagedata)'''
file = open(tourl, "wb")
file.write(imagedata)
file.close()
print("處理完成")
'''
圖像對比度增強
'''
defcontrast_enhance():
fromurl = input("請輸入要處理的圖片路徑:")
tourl = input("請輸入要保存圖片的路徑:")
request_url = # 二進制方式打開圖片文件
f = open(fromurl, 'rb')
img = base64.b64encode(f.read())
params = {"image":img}
params = urllib.parse.urlencode(params).encode(encoding='UTF8')
access_token = GetToken.access_token
request_url = request_url + "?access_token="+ access_token
request = urllib.request.Request(url=request_url, data=params)
request.add_header('Content-Type', 'application/x-www-form-urlencoded')
response = urllib.request.urlopen(request)
content = response.read()
ifcontent:
'''print (content)'''
content_str = str(content, encoding="utf-8")
###eval將字符串轉換成字典
content_dir = eval(content_str)
image = content_dir['image']
sss = image
'''print(len(sss))'''
imagedata = base64.b64decode(sss)
'''print(imagedata)'''
file = open(tourl, "wb")
file.write(imagedata)
file.close()
print("處理完成")
while True:
num = input('>>')
ifnum == '1':
image_quality_enhance()
elifnum == '2':
dehaze()
elifnum == '3':
contrast_enhance()
else:
print('輸入錯誤')
---------------------------------------------
如此,我們就可以用python+百度ai快速處理一些圖片了。
最后:希望可以給你在Python學習中帶來幫助~
本文作者:張毅超
總結
以上是生活随笔為你收集整理的python图片二值化处理百度图api_Python+百度AI实现图像处理-附源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 魔兽地图义水浒攻略有哪些
- 下一篇: jQuery fadeOut()方法怎么