Python 2.7:Canny Edge检测中的错误TypeError(“图像数据无法转换为浮动”)

时间:2017-08-24 06:05:11

标签: python image-processing opencv3.0 canny-operator

我在Python 2.7.12中使用带图像(.jpg)的Canny边缘检测算法

enter image description here

我使用了以下代码:

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('35.jpg')  
edges = cv2.Canny(img,150,200)
plt.subplot(121),plt.imshow(img,cmap = 'gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(edges,cmap = 'gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])
plt.show()

但它显示我的错误

Traceback (most recent call last):
  File "D:/python/test4.py", line 11, in <module>
    plt.subplot(121),plt.imshow(img,cmap = 'gray')
  File "C:\Python27\lib\site-packages\matplotlib\pyplot.py", line 3157, in imshow
    **kwargs)
  File "C:\Python27\lib\site-packages\matplotlib\__init__.py", line 1898, in inner
    return func(ax, *args, **kwargs)
  File "C:\Python27\lib\site-packages\matplotlib\axes\_axes.py", line 5124, in imshow
    im.set_data(X)
  File "C:\Python27\lib\site-packages\matplotlib\image.py", line 596, in set_data
    raise TypeError("Image data can not convert to float")
TypeError: Image data can not convert to float 

我看到很多与此相关的答案,但我无法纠正。我还观察到如果我将相同的图像保存为.png,那么代码运行完全。我需要在代码中进行哪些修改才能运行.jpg文件? 谢谢。

1 个答案:

答案 0 :(得分:0)

我尝试了你的代码 当我将错误的图像路径传递给cv2.imread时,会出现问题。 否则,它工作正常。 所以首先只是尝试检查图像路径。