Python TypeError:需要整数(获取类型元组)?

Python TypeError:需要整数(获取类型元组)?,python,python-3.x,opencv,cv2,bounding-box,Python,Python 3.x,Opencv,Cv2,Bounding Box,这段代码几天前还在运行。但是现在得到了打字错误 代码: import cv2 import numpy as np import pytesseract from langdetect import detect_langs from pytesseract import * from flask import Flask,request import requests try: from PIL import Image except ImportError: import

这段代码几天前还在运行。但是现在得到了打字错误

代码:

import cv2
import numpy as np
import pytesseract
from langdetect import detect_langs
from pytesseract import *
from flask import Flask,request
import requests 

try:
    from PIL import Image
except ImportError:
    import Image

#pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files/Tesseract-OCR/tesseract.exe'


img = Image.open('G:/Agrima/example_code_API/OCR/FDA.png')

#h, w, c = img.shape

d = pytesseract.image_to_data(img,output_type=Output.DICT)


detected_ocr = image_to_string(img)
points = []
n_boxes = len(d['text'])
for i in range(n_boxes):
    if int(d['conf'][i]) > 60:
        (x, y, w, h) = (d['left'][i], d['top'][i], d['width'][i],d['height'][i])
        img = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
        mark = {'x':x,'y':y,'width':w,'height':h}
        points.append({'mark':mark})

# print(points)
cv2.imshow('img', img)
cv2.waitKey(0)
img=cv2中的错误。矩形(img,(x,y),(x+w,y+h),(0,255,0),2)

还尝试更改为
img=cv2.矩形(img,int((x,y)),int((x+w,y+h)),(0,255,0),2)

错误日志:

img=cv2.矩形(img,(x,y),(x+w,y+h),(0255,0),2) TypeError:需要整数(获取类型元组)


我认为错误陈述可能会误导。我记得曾经遇到过这个问题,因为我的坐标(x,y)是
float
,而不是
int
。检查您的变量
x,y,w,h
是否确实是
int

您可以显示
(x,y,w,h)
@Rakesh 0 220的打印吗1@Georgy谢谢你给我答案。这个答案把我带到了另一个解决我问题的答案。问题是OpenCV似乎不能直接与PIL图像一起工作。所以,必须将其转换为RGB,并将其存储为numpy数组,然后将其转换为BGRN。我不知道为什么我的带有链接的评论被删除了。我再把它留在这里:是的。我试着打印(x,y,w,h)。输出:0 0 220 1…使用类型(x)进行偶数双重检查。。在执行
x+w
y+h
时,哪一个是“int”您是否仍然以整数或浮点结束?例如,如果您在Python中执行
1.1+2.2
,它将返回一个值为
3.30000000000000003
的浮点值。由于浮点数通常不是十进制数的精确表示,而是近似值,因此会出现此错误。是的,它仍然给我“int”。。。。类型(x+w)是“国际”,谢谢你的时间。我解决了这个问题。。。。问题是OpenCV似乎不能直接与PIL图像一起工作。因此,必须将其转换为RGB,并将其存储为numpy数组,然后将其转换为BGR。干杯