PB

Patrick Bergmann17/11/2022 10:59
Compartilhe

Erro codigo python

  • #Python

Bom dia pessoal, tudo bem com vocês?

Gostaria da ajuda de vocês para identificar qual é o erro no meu codigo, pois tentei diversas coisas e nao consegui resolver.

import cv2 as cv

import numpy as np

import mahotas

def escreve(imagem,texto,cor=(255,0,0)):

  fonte=cv.FONT_HERSHEY_SIMPLEX

  cv.putText(imagem,texto,(10,20),fonte,0.5,cor,0,cv.LINE_AA)

imagemC=cv.imread("C:/demo.jpg")

imagemg=cv.cvtColor(imagemC,cv.COLOR_BGR2GRAY)

blur=cv.GaussianBlur(imagemg(7,7),0)

T,bin=cv.threshold(blur,160,255,cv.THRESH_BINARY)

canny=cv.Canny(bin,70,150)

(lixo, objetos, lixo)=cv.findContours(canny.copy(),cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE)

escreve(imagemg, "Imagem em tons de cinza", 0)

escreve(blur, "Suavização com Blur", 0)

escreve(bin, "Binarização por limiar", 255)

escreve(canny, "Detector de bordas Canny", 255)

colag=np.vstack([np.hstack([imagemg,blur]), np.hstack([bin,canny])])

cv.imshow("Quantidade de bolinhas: "+str(len(objetos)),colag)

cv.waitKey(0)

imagemc2=imagemC.copy()

cv.imshow("Imagem colorida",imagemc2)

cv.drawContours(imagemc2,objetos,-1,(255,0,0),2)

escreve(imagemc2,str(len(objetos))+" objetos encontrados!")

cv.imshow("Contagem", imagemc2)

cv.waitKey(0)

Ele relata o seguinte erro:

TypeError: 'numpy.ndarray' object is not callable

Desde ja muito obrigado!

Compartilhe
Comentários (1)

ET

Eduardo Teixeira - 17/11/2022 12:44

Boa tarde!

O erro que ele está acusando é que vc tentou "chamar" um np.ndarray como se ele fosse uma função. Isso acontece na instrução:

blur=cv.GaussianBlur(imagemg(7,7),0)

O problema é apenas a falta de uma vírgula entre a variável imagemg (que é o np.ndarray nesse caso) e o valor (7, 7). Com isso a nova linha fica:

blur=cv.GaussianBlur(imagemg, (7,7), 0)