TypeError:setText(self,str):参数1具有意外类型'元组'

时间:2018-02-22 13:29:07

标签: python python-3.x opencv pyqt pyqt5

我创建了一个代码,当" load"单击,用户将上传.png图像,opencv将执行houghcircle并计算圆圈。

GUI

和计数,将显示在textlabel上。 circles.shape将导致(1,99,3),我想在文本标签上显示99,甚至整个(1,99,3)。

问题是,我在上传图片后出现此错误

  

追踪(最近一次通话):     在浏览中输入" try.py",第58行       self.label_2.setText(circles.shape)   TypeError:setText(self,str):参数1具有意外类型' tuple'

这是我的代码:

def Browse(self):
    filter = "Images (*.png)"
    fname, _ = QFileDialog.getOpenFileName(self, "Open Image", "Desktop", filter)
    print(fname)
    self.scene = QGraphicsScene()
    self.scene.addPixmap(QPixmap(fname))
    self.graphicsView_2.setScene(self.scene)

    img = cv2.imread(fname,0)
    cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)

    circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,5,
                        param1=200,param2=8,minRadius=0,maxRadius=7)

    circles = np.uint16(np.around(circles))
    for i in circles[0,:]:
        # draw the outer circle
        cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),1)
        # draw the center of the circle
        cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),1)
    numberofcells = print(circles.shape)
    self.label_2.setText(circles.shape) 

任何帮助将不胜感激。非常感谢你!

1 个答案:

答案 0 :(得分:2)

setText()需要一个字符串,但是你传递了一个元组,可能的解决方案是:

self.label_2.setText(str(circles.shape))