Python IBM watson图像识别

Python IBM watson图像识别,python,ibm-cloud,ibm-watson,image-recognition,Python,Ibm Cloud,Ibm Watson,Image Recognition,我是沃森的新手,因为我要上一门穆格课程。我正在浏览遇到问题的例子,但我想不出来。我一直收到错误403。任何帮助都将不胜感激。多谢各位 import cv2 import urllib.request from matplotlib import pyplot as plt from matplotlib import rcParams from ibm_watson import VisualRecognitionV3 from ibm_cloud_sdk_core.authenticators

我是沃森的新手,因为我要上一门穆格课程。我正在浏览遇到问题的例子,但我想不出来。我一直收到错误403。任何帮助都将不胜感激。多谢各位

import cv2
import urllib.request
from matplotlib import pyplot as plt
from matplotlib import rcParams
from ibm_watson import VisualRecognitionV3
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator

my_apikey = 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'

# Paste your API key for IBM Watson Visual Recognition below:
authenticator = IAMAuthenticator(my_apikey)
visrec = VisualRecognitionV3("2020-07-30", authenticator=authenticator)

def plt_image(image_url, size=(10, 8)):
# Downloads an image from a URL, and displays it in the notebook
    urllib.request.urlretrieve(image_url, "image.jpg")  # downloads file as "image.jpg"
    image = cv2.imread("image.jpg")

# If image is in color, then correct color coding from BGR to RGB
    if len(image.shape) == 3:
        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

rcParams['figure.figsize'] = size[0], size[1]  # set image display size

plt.axis("off")
plt.imshow(image, cmap="Greys_r")
plt.show()


from pandas.io.json import json_normalize


def getdf_visrec(url, apikey=my_apikey):
    json_result = visrec.classify(url=url, threshold='0.6', classifier_ids= 'E36').get_result()

    json_classes = json_result['images'][0]['classifiers'][0]['classes']

    df = json_normalize(json_classes).sort_values('score', ascending=False).reset_index(drop=True)

    return df






url = 'http://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/CV0101/Images/76011_MAIN._AC_SS190_V1446845310_.jpg'
plt_image(url)
getdf_visrec(url,my_apikey)
这是我运行此命令时得到的错误代码

ERROR:root:Forbidden
Traceback (most recent call last):
File "C:\Users\isaip\OneDrive\College\python pp\venv\lib\site-packages\ibm_cloud_sdk_core            \   base_service.py", line 229, in send
response.status_code, error_message, http_response=response)
ibm_cloud_sdk_core.api_exception.ApiException: Error: Forbidden, Code: 403
Traceback (most recent call last):
File "C:/Users/isaip/OneDrive/Desktop/.idea/pythonpy/watson.py", line 49, in <module>
getdf_visrec(url,my_apikey)
File "C:/Users/isaip/OneDrive/Desktop/.idea/pythonpy/watson.py", line 34, in getdf_visrec
json_result = visrec.classify(url=url, threshold='0.6', classifier_ids= 'E36').get_result()
File "C:\Users\isaip\OneDrive\College\python pp\venv\lib\site-packages\ibm_watson\  visual_recognition_v3.py", line 183, in classify
response = self.send(request)
File "C:\Users\isaip\OneDrive\College\python pp\venv\lib\site-packages\ibm_cloud_sdk_core\  base_service.py", line 229, in send
response.status_code, error_message, http_response=response)
ibm_cloud_sdk_core.api_exception.ApiException: Error: Forbidden, Code: 403
错误:根目录:禁止
回溯(最近一次呼叫最后一次):
文件“C:\Users\isaip\OneDrive\College\python pp\venv\lib\site packages\ibm\u cloud\u sdk\u core\base\u service.py”,第229行,在send中
response.status\u代码、错误消息、http\u response=response)
ibm_cloud_sdk_core.api_exception.apieexception:错误:禁止,代码:403
回溯(最近一次呼叫最后一次):
文件“C:/Users/isaip/OneDrive/Desktop/.idea/pythonpy/watson.py”,第49行,在
getdf_visrec(url,my_apikey)
文件“C:/Users/isaip/OneDrive/Desktop/.idea/pythonpy/watson.py”,第34行,在getdf_visrec中
json_result=visrec.classify(url=url,threshold='0.6',classifier_id='E36')。get_result()
文件“C:\Users\isaip\OneDrive\College\python pp\venv\lib\site packages\ibm\u watson\visual\u recognition\u v3.py”,第183行,在分类中
响应=self.send(请求)
文件“C:\Users\isaip\OneDrive\College\python pp\venv\lib\site packages\ibm\u cloud\u sdk\u core\base\u service.py”,第229行,在send中
response.status\u代码、错误消息、http\u response=response)
ibm_cloud_sdk_core.api_exception.apieexception:错误:禁止,代码:403

退出代码为1的过程已结束,在Watson services上获得403是很常见的。它发生在密钥与端点不匹配时,基本上是当您使用的密钥不正确、端点不正确或两者都不正确时

查看有关如何设置url端点的API文档

来自ibm\u watson import VisualRecognitionV3
从ibm_cloud_sdk_core.authenticators导入IAM验证器
验证器=IAM验证器(“{apikey}”)
视觉识别=视觉识别v3(
version='{version}',
验证器=验证器
)
视觉识别。设置服务url(“{url}”)