python - 更改 numpy 数组中的值需要很长时间
问题描述
我有一个函数,可以将二进制图像 [True, False] 转换为灰度图像 [0, 255],以便它们可用于 opencv 函数。但是,我发现这个特定的功能几乎花费了最长的时间。有没有办法优化这个功能?
def change_image(image):
unique_values = np.unique(image)
mean_unique = np.mean(unique_values)
if 255 in unique_values:
threshold_image = image > mean_unique
return threshold_image
if True in image:
image = np.where(image==False, 0, 255)
return image
else:
return image
解决方案
要将二值图像转换为灰度图像,请将整个图像乘以 255,以便 [0, 1] 映射到 [0, 255]。
此外,灰度图像可能不包含 255,因此该条件255 in unique_values
不是可靠的测试。
推荐阅读
- php - 如何在创建和写入文件时授予 PHP 对目录的写入权限?
- matlab - 如何在matlab中正确拟合非线性函数
- tensorflow - 如何解决分类器模型中的 InvalidArgumentError?
- php - 在 woocommerce_after_checkout_validation 上执行脚本
- java - 如何重构一种类型的错误移动字段?
- python - 在 Python 中转置数据
- php - 默认情况下无法选择选项
- python - 解决单词搜索并删除找到的字符
- python - 传递会话信息以进行抓取的问题
- javascript - 为什么在 JavaScript 中可以使用 `` 运算符调用函数?