- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是最小的工作示例:
import numpy as np
from skimage.io import imsave, imread
image = np.array([[[109, 232, 173],
[ 55, 35, 144]],
[[ 43, 124, 185],
[234, 127, 246]]], dtype=np.uint8)
imsave("test.jpg", image)
rb_image = imread("test.jpg")
print("original image")
print(image)
print("read back image")
print(rb_image)
运行后结果是,从文件中读回的ndarray不匹配
original image
[[[109 232 173]
[ 55 35 144]]
[[ 43 124 185]
[234 127 246]]]
read back image
[[[111 208 255]
[ 42 61 138]]
[[ 72 140 201]
[141 131 218]]]
有人可以给我一些建议吗?
最佳答案
jpeg 是一种有损图像压缩算法,旨在通过去除人眼不易察觉的信息来减小文件大小。这意味着保存为 jpg 将节省一些磁盘空间,但会更改阵列的像素值。
您可以通过保存为无损 png 格式来避免该问题。以下代码段对我有用
import numpy as np
from skimage.io import imsave, imread
image = np.array([[[109, 232, 173],
[ 55, 35, 144]],
[[ 43, 124, 185],
[234, 127, 246]]], dtype=np.uint8)
imsave("test.png", image)
rb_image = imread("test.png")
print("original image")
print(image)
print("read back image")
print(rb_image)
这是结果
original image
[[[109 232 173]
[ 55 35 144]]
[[ 43 124 185]
[234 127 246]]]
read back image
[[[109 232 173]
[ 55 35 144]]
[[ 43 124 185]
[234 127 246]]]
关于python - scikit-image:使用 imsave 将 ndarray 写入图像,使用 imread 读回,数据不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47361966/
我正在尝试编写将使用 numpy 和 scipy 生成视差图的代码,但是我存储在我的图像的 numpy 数组中的值与我的输出图像中实际显示的值完全不同,用 misc 保存。保存。例如,在数组中,没有一
我正在尝试运行一个 while 循环,在循环结束时创建并保存图像。不幸的是,每个循环都会更新以前保存的图像文件,而不是创建新的图像文件。因此,在运行 5 次的 while 循环结束时(应该创建 5 个
我正在尝试使用一些矩形和圆形的随机图像生成 CLEVR 数据集。当我调试每个 plt.imshow() 语句的代码时,我可以看到一个新图像,其中生成了形状以及在上次执行的循环中生成的形状。虽然,令我惊
我正在进行图像处理,并在 Jupyter Notebook 中使用 Python 2.7。但是,当我使用 scipy.misc.imsave() 将 numpy 数组保存为图像时,结果看起来比使用 m
考虑以下 MWE 来生成随机图像: import matplotlib.pyplot as plt import numpy as np pts = np.random.random_sample((
当我使用 scipy.misc.imsave 在 scipy 中保存图像时,它总是“规范化”图像强度,将最低值缩放为 0,将最高值缩放为 1(对于灰度),可比MATLAB 对 imshow(image
//1 我有颜色矩阵(M*N) 我使用 imsave 来获取图像。 图,imagesc(颜色矩阵),colormap(灰色);保存; 它很简单并且有效。但是我每次都必须给图像名称来保存图像。如何将文件
我有一个简单的任务要完成,但我发现当前的保存功能根本没有帮助我。我要做的只是将灰度图像转换为另一幅强度属于较小区间(特别是 120 到 180 之间)的图像。 我实现了转换(就像改变不同的温标),但是
我用 matplotlib 绘制了大量图片,以便用它制作视频,但是当我尝试制作视频时,我看到图片的形状在时间上并不相同......这会导致一些错误。当我使用 Imsave 时,是否有命令强加输出的形状
这个函数用于储存图片,将数组保存为图像 此功能仅在安装了Python Imaging Library(PIL)时可用。版本也比较老了,新的替代它的是imageio.imwrite() 用法:
我有一组从彩色图像读取的灰度图像。如果我使用 matplotlib 来显示灰度图像,它看起来就很好。但是当我 io.imsave 它时,它被毁了(被大量的噪音所破坏)。但是,如果我在 io.imsav
当我保存图像时,它的格式是numpy.uint16,当我加载它时,它是numpy.uint8,它搞乱了整个管道为我。如何防止这种情况发生? 我正在打电话 from scipy.misc import
from scipy.misc import imread from matplotlib import pyplot import cv2 from cv2 import cv from SRM i
当使用 Scipy toimage 或 imsave 保存二维 Numpy 数组(单值)时,像素值与 Numpy 数组中的像素值不完全匹配。相反,有些区域(主要是边缘)图像算法似乎使用了某种插值。 是
无法在 Colaboratory 上使用 scipy.misc.imsave from scipy.misc import imsave ImportError: cannot import name
我打开 python3 解释器并输入 import scipy.misc scipy.misc.imsave 结果 Traceback (most recent call last): File
我想禁用(或尽可能降低)plt.imsave() 的压缩。我只想快速转储几乎可以立即重复使用的 PNG 图像。 有什么想法可以做到这一点吗? (我正在使用聚合后端) 最佳答案 从外观上看,matplo
函数 imsave() 在 scipy 1.0.0 (Python 3.5) 的 scipy.misc 包中不存在。它在哪里? 我正在尝试 sample program使用 keras 术语使用 sc
我正在截屏(PNG 格式)调整大小,然后通过 scipy.misc 模块(imread、imresize、imsave 函数)以 TIF 格式写回。 TIF 格式的图像将被送入 Tesseract-O
我正在尝试让 opencv VideoWriter 从 skimage-kit 修改的图像生成 avi。我遇到了 skimage.io.imsave 和 VideoWriter.write 之间的颜色
我是一名优秀的程序员,十分优秀!