參考資料:蔚藍(lán)呆鳥
在我學(xué)習(xí)Pytorch的PIL模塊的過程中,運(yùn)行了如下代碼:
from PIL import Image
a = Image.open('Avengers.jpeg')
ra, ga, ba = a.split() # 把圖像分割為R,G,B三個通道圖像
ra.save("R.jpg")
ga.save("G.jpg")
ba.save("B.jpg")
大致意思是將一張RGB圖片分成R、G、B三個通道,并分別將每個通道的圖片保存下來。
但是出現(xiàn)了如下的報錯:
ValueError: too many values to unpack (expected 3)
翻譯一下就是用來接收的變量數(shù)與函數(shù)需要接收的變量數(shù)不一致。
我查找了好久的博客,終于找到一篇博客問題描述與我的相符(就是參考資料后面給的鏈接)
問題在于,'Avengers.jpeg’這張圖片的通道不一定只有三個!
于是我在第二行之后加一行代碼:
print(a.mode, a.size, a.format)
輸出結(jié)果為:
RGBA (600, 299) PNG
這里輸出的是RGBA而不是RGB!RGBA模式有四種顏色通道,所以應(yīng)該由四個變量去接收。
修改后的代碼如下:
from PIL import Image
a = Image.open('Avengers.jpeg')
print(a.mode, a.size, a.format)
ra, ga, ba, aa = a.split() # 把圖像分割為R,G,B三個通道圖像
ra.save("R.jpg")
ga.save("G.jpg")
ba.save("B.jpg")
aa.save("A.jpg")
運(yùn)行結(jié)果:該目錄的文件夾內(nèi)新增加了四張圖片,但是除了‘A.jpg’是白色圖片以外,另外三張圖片都是灰色(我猜是灰度圖,保存的時候只保存了一個數(shù)字值,然后系統(tǒng)默認(rèn)為只有一個通道的灰度圖)
我目前沒有找到解決辦法,于是調(diào)用pylab模塊
from PIL import Image
from pylab import subplot, imshow, show
a = Image.open('Avengers.jpeg')
ra, ga, ba, aa = a.split() # 把圖像分割為R,G,B三個通道圖像
subplot(221)
imshow(ra)
subplot(222)
imshow(ga)
subplot(223)
imshow(ba)
subplot(224)
imshow(aa)
show()
運(yùn)行結(jié)果:文章來源:http://www.zghlxwxcb.cn/news/detail-785722.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-785722.html
到了這里,關(guān)于機(jī)器學(xué)習(xí)報錯解決2——ValueError: too many values to unpack (expected 3)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!