作者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/cn.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