Olá Marcus, no ultimo tópico disse que meu código não estava conseguindo converter a string em float para visualização da imagem.
Você me apresentou duas sugestões. Como segue abaixo:
"Olá, Thiago! Tudo bom? Espero que sim!
A função não conseguiu identificar que o path aponta para um arquivo, e está considerando apenas como uma string comum. Por esse motivo o erro aponta que um conteúdo de imagem esperado (Image data) de tipo object (string) não pode ser convertido ao tipo padrão, que é um array de floats.
Para passar o caminho corretamente, a correção que precisa ser feita é no padrão de escrita path completo do arquivo da imagem que você passou na função cv2.imread().
import cv2
import matplotlib.pyplot as plt
import seaborn as sns
imagem = cv2.imread("C:\\Users\\Felipe\\Desktop\\Programação\\Visão Computacional\\px-girl.jpg")
plt.imshow(imagem)
Ou então você também pode utilizar uma raw-string para ignorar possíveis confusões com metacaracteres:
import cv2
import matplotlib.pyplot as plt
import seaborn as sns
imagem = cv2.imread(r"C:\Users\Felipe\Desktop\Programação\Visão Computacional\px-girl.jpg")
plt.imshow(imagem)
MAs tentei as duas opções e continua com o mesmo erro.
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_14100\2254562551.py in <module>
1 imagem = cv2.imread(r"C:\Users\Felipe\Desktop\Programação\Visão Computacional\px-girl.jpg")
----> 2 plt.imshow(imagem)
~\anaconda3\lib\site-packages\matplotlib\_api\deprecation.py in wrapper(*args, **kwargs)
457 "parameter will become keyword-only %(removal)s.",
458 name=name, obj_type=f"parameter of {func.__name__}()")
--> 459 return func(*args, **kwargs)
460
461 # Don't modify *func*'s signature, as boilerplate.py needs it.
~\anaconda3\lib\site-packages\matplotlib\pyplot.py in imshow(X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, interpolation_stage, filternorm, filterrad, resample, url, data, **kwargs)
2650 interpolation_stage=None, filternorm=True, filterrad=4.0,
2651 resample=None, url=None, data=None, **kwargs):
-> 2652 __ret = gca().imshow(
2653 X, cmap=cmap, norm=norm, aspect=aspect,
2654 interpolation=interpolation, alpha=alpha, vmin=vmin,
~\anaconda3\lib\site-packages\matplotlib\_api\deprecation.py in wrapper(*args, **kwargs)
457 "parameter will become keyword-only %(removal)s.",
458 name=name, obj_type=f"parameter of {func.__name__}()")
--> 459 return func(*args, **kwargs)
460
461 # Don't modify *func*'s signature, as boilerplate.py needs it.
~\anaconda3\lib\site-packages\matplotlib\__init__.py in inner(ax, data, *args, **kwargs)
1410 def inner(ax, *args, data=None, **kwargs):
1411 if data is None:
-> 1412 return func(ax, *map(sanitize_sequence, args), **kwargs)
1413
1414 bound = new_sig.bind(ax, *args, **kwargs)
~\anaconda3\lib\site-packages\matplotlib\axes\_axes.py in imshow(self, X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, interpolation_stage, filternorm, filterrad, resample, url, **kwargs)
5479 **kwargs)
5480
-> 5481 im.set_data(X)
5482 im.set_alpha(alpha)
5483 if im.get_clip_path() is None:
~\anaconda3\lib\site-packages\matplotlib\image.py in set_data(self, A)
704 if (self._A.dtype != np.uint8 and
705 not np.can_cast(self._A.dtype, float, "same_kind")):
--> 706 raise TypeError("Image data of dtype {} cannot be converted to "
707 "float".format(self._A.dtype))
708
TypeError: Image data of dtype object cannot be converted to float``