作者dosiris (希望大家開心)
看板Python
標題[問題] skimage.io.imread()讀圖檔底色是黃色?
時間Sun Dec 28 06:18:59 2025
為瞭解slicing的color channels是怎麼回事,最簡單的方法就是先製作一張有RGB三色的圖片:
https://i.meee.com.tw/33EcphL.jpg
再用skimage.io.imread()圖檔後,應該就能過濾掉紅、綠、藍色。結果發現:
from skimage.io import imread, imsave
img = imread('fig.jpg')
test = img[:, :, 0]
plt.imshow(test)
https://i.meee.com.tw/kfJN1cK.png
紅色確實被濾掉了,但是怎麼底色和紅色方塊都變成黃色?
(圖片背景色確定為白色而非透明)
有辦法套用紅色濾鏡並去掉黃色底色嗎? 謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.127.80 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1766873948.A.82D.html
※ 編輯: dosiris (114.43.127.80 臺灣), 12/28/2025 09:37:13
1F:→ Hsins: 因為他預設的 colormap (cmap) 是 viridis,所以過濾後就是 12/28 20:34
2F:→ Hsins: 亮黃色,你該指定改用 gray 的 cmap。 12/28 20:34
3F:→ Hsins: 關鍵字有給你了,要找到怎麼處理應該不難 12/28 20:34
4F:→ dosiris: 謝謝! plt.imshow(test, cmap='gray') 確實就紅色塊和底 12/29 06:37
5F:→ dosiris: 色正確變白 只是藍綠色塊也變灰階 我再試試其他cmap能否 12/29 06:38
6F:→ dosiris: 讓藍綠色塊正確顯色 12/29 06:39
7F:→ Hsins: 不是... 你的 source code 會讓 test 變成一個二維的陣列 12/29 14:50
8F:→ Hsins: 他本來就是灰階的... 12/29 14:50
9F:→ Hsins: 如果你要的是 "套紅色濾鏡" 類似紅色玻璃紙的效果,應該用 12/29 14:54
10F:→ Hsins: img[:, :, 0] = 255 這邊的 0 是 R 通道 12/29 14:54
11F:→ dosiris: 瞭解 謝謝分享 12/29 16:52