python - 如何使用 Kivy 正确读取图像像素?
问题描述
我正在尝试获取HxWx3
RGB 数组中的图像像素值,其中H
和W
是图像的高度和宽度。首先,我曾经plt.imread(filename)
获得所需的数组,一切正常。但是,我必须使用kivy
相同的角色来实现。为了做到这一点,我一直在做以下事情:
from kivy.core.image import Image as CoreImage
im = CoreImage(filename)
pixels = np.frombuffer(im.image._data[0].data, dtype=np.uint8).reshape((im.image._data[0].height, -1, 3))
im.image._data[0].data
是一个看起来像这样的字节字符串
b'@Vn>Tl/H^=Vl6Oc.CX\xad\xbe\xd2\xd2\xe1\xf4\xce\xdd\xf0\xc6\xd9\xe8\xc6\xdd\xeb\xaa\xc6\xd2\xbb\xd9\xe4\xb6\xd4\xdf\xcd\xe9\xf5o\x8b\x97\x00\x16#\x1e4A\x1c/=\x11!0\x'
它继续......
但是,我在这段代码中遇到了一些问题。
首先,当我显示像素的内容(来自np.buffer
我想来自)时,似乎有一个“黑色”条添加到图片中,因为我可以看到(0,0,0)
每行都添加了一个元组。
这个黑色条增加了我的数组的大小,并使其.reshape
不适用于某些图片。
有谁知道如何在重塑之前去除黑色条带?我正在尝试使用最少的 for 循环。
解决方案
推荐阅读
- spring-boot - Junit 上的 MockMvc 模拟返回失败
- c# - Automapper WebApi 中间件?
- docker - 主机到 Docker 容器到 Docker 容器的通信
- security - 使用中间人攻击请求篡改 SSL
- flutter - Flutter test_driver 执行报告
- pyspark - 使用 pyspark 展平复杂的 JSON 模式
- security - RBAC - 我应该把权限放在数据库中还是硬编码它们?
- c# - 如何向最终用户显示消息而不是 404 页面“错误处理”
- postgresql - postgres:在字符串中搜索多个单词
- date - 连接 BigQuery 和 Google 表格 - 日期参数问题