我创建了一个代码,其中单击“加载”时,用户将上传一个.png图像,而opencv将执行houghcircle并计算圆圈。
计数将显示在textlabel上。 circle.shape的结果为(1,99,3),我想在文本标签上显示99,甚至整个(1,99,3)。
问题是,上传图片后出现此错误
这是我的代码:
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)
任何帮助,将不胜感激。非常感谢!
最佳答案
setText()
需要一个字符串,但是您将其传递给一个元组,可能的解决方案是:
self.label_2.setText(str(circles.shape))
关于python - TypeError:setText(self,str):参数1具有意外类型 'tuple',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48928640/