完美解決 scipy.misc.imread 報錯 TypeError: Image data cannot be converted to float


File "/home/harrison/anaconda3/lib/python3.7/site-packages/matplotlib/image.py", line 634, in set_data
raise TypeError("Image data cannot be converted to float")
TypeError: Image data cannot be converted to float

 

代碼如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
# auth: harrison time: 15/07/19

import numpy as np
import scipy.misc as sm
import matplotlib.pyplot as mp


original = sm.imread('../da_data/lily.jpg', True)
#提取特征值
eigvals, eigvecs = np.linalg.eig(original)
eigvals[50:] = 0
print(np.diag(eigvals).shape)
original2 = np.mat(eigvecs) * np.mat(np.diag(eigvals)) * np.mat(eigvecs).I
mp.figure("Lily Features")
mp.subplot(121)
mp.xticks([])
mp.yticks([])
mp.imshow(original, cmap='gray')

mp.subplot(122)
mp.xticks([])
mp.yticks([])
mp.imshow(original2, cmap='gray')

mp.tight_layout()
mp.show()


解決發案:
  是因為 original 返回值是復數 包含實數,虛數, 只要在取出實數就ok
  
  mp.imshow(original.real, cmap='gray')
  mp.imshow(original2.real, cmap='gray')


完美解決 scipy.misc.imread 報錯  TypeError: Image data cannot be converted to float
  



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM