小编Sea*_*dge的帖子

在 numpy 中创建“白色”图像(二维图像)

看起来我似乎在理解图像在 numpy 数组中的表示方式方面存在一些根本性的差距。

img = np.ones([100,100,3], dtype=np.uint8)*255
plt.imshow(img)
Run Code Online (Sandbox Code Playgroud)

上面的代码创建了一个“白色”的 3 通道图像。

每个像素都有值 [255,255,255]

明白了。

现在我想创建一个“白色”灰度图像。我真的不需要 RGB 通道来存储白色图像,是吗?

img_bw = np.ones([100,100], dtype=np.uint8)*255
plt.imshow(img_bw, cmap = "gray")
Run Code Online (Sandbox Code Playgroud)

即使每个像素位置的值为 255,这也会创建一个“黑色图像”?

好的,让我拿我之前的 3 通道白色图像并将其转换为灰度,看看 numpy 数组是什么样的。

img_bw1 = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
plt.imshow(img_bw1, cmap = "gray") 
Run Code Online (Sandbox Code Playgroud)

这也给了我一个“黑色图像”?

那么灰度“白色图像”的 numpy 矩阵到底是什么样的呢?

img = io.imread("https://www.colorcombos.com/images/colors/FFFFFF.png" , as_grey=True)
plt.imshow(img*255, cmap = "gray")
Run Code Online (Sandbox Code Playgroud)

这是一张白色的图像。该矩阵中的每个像素的值都为 216 及以上

plt.imshow(img, cmap = "gray")
Run Code Online (Sandbox Code Playgroud)

这也是一个白色的图像。该矩阵中的每个像素的值都为 0.86 及以上。

我完全迷路了。

问题 -

  1. 如何在 numpy 中创建灰度二维白色图像?

  2. 为什么不使用 cv2.Color 将 numpy 中的 3 通道白色图像转换为灰度图像给我一个白色图像?

python opencv numpy image-processing scikit-image

5
推荐指数
1
解决办法
7676
查看次数

在 Discord.py 中获取消息作者

我正在努力为我和我的朋友们制作一个有趣的机器人。我想要一个命令来说明作者的用户名是什么,带或不带标签。我尝试查找如何执行此操作,但没有一个适用于我的代码当前设置的方式。

import discord
client = discord.Client()

@client.event
async def on_message(message):
    if message.author == client.user:
        return
    if message.content.startswith('$WhoAmI'):
        ##gets author.
        await message.channel.send('You are', username)

client.run('token')
Run Code Online (Sandbox Code Playgroud)

我希望这是有道理的,我见过的所有代码都使用ctx@client.command

python python-3.x discord.py

5
推荐指数
1
解决办法
3万
查看次数

获取mpv中当前播放文件的完整路径

有没有办法在启动mpv后从 中获取当前播放文件的完整路径mpv

我看到了这个问题,但它没有显示如何获取属性,只是如何发送命令。

编辑:通过“获取完整路径”,我的意思是从编程开始;从另一个程序或终端,而不是通过mpvmpv应用程序本身上使用命令/键绑定。

linux mpv

5
推荐指数
1
解决办法
1038
查看次数

在Python中随机选择所有组合的子集

itertools.list(product([0, 1], repeat=n))当n很小时,我可以构造一个n长度二进制值组合的列表.

1000
0100
0110
1001
 .
 .
 .
Run Code Online (Sandbox Code Playgroud)

当n很大时,如何在不首先构建大量组合列表的情况下随机选择上面列表的子集?

假设我想在n = 30时随机选择100万个组合而不进行替换(总共2 ^ 30个组合)

我查看了itertools的扩展函数http://docs.python.org/2/library/itertools.html#recipes

def random_product(*args, **kwds):
    "Random selection from itertools.product(*args, **kwds)"
    pools = map(tuple, args) * kwds.get('repeat', 1)
    return tuple(random.choice(pool) for pool in pools)
Run Code Online (Sandbox Code Playgroud)

但它一次只返回一次.在获得100万个独特组合之前,我应该循环使用此功能吗?或者有更好的方法.谢谢!

python random combinations python-itertools

4
推荐指数
1
解决办法
499
查看次数

YYMM 到日期时间 python

我有一个 Python 格式的日期框列YYMM。例如January 19969601

我很难将其从 9601 转换为可用的日期时间格式。我希望新的格式是01-01-1996. 有没有人有什么建议?我尝试了pd.to_datetime功能,但没有得到我想要的结果。

python datetime pandas

1
推荐指数
1
解决办法
1173
查看次数