- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
PIL
/scipy.misc
中实现的imresize
似乎只适用于 uint8 图像
>>> import scipy.misc
>>> im = np.random.rand(100,200)
>>> print im.dtype
float64
>>> im2 = scipy.misc.imresize(im, 0.5)
>>> print im2.dtype
uint8
有什么办法解决这个问题吗?我想处理 HDR 图像,因此需要处理 float64
或 float32
图像。谢谢。
最佳答案
感谢 cgohlke 的评论。以下是我发现适用于 float 图像的两个替代方法。
对于单 channel 图像:im2 = scipy.ndimage.interpolation.zoom(im, 0.5)
对于 3 channel 图像:im2 = scipy.ndimage.interpolation.zoom(im, (0.5, 0.5, 1.0))
im2 = cv2.resize(im, (im.shape[1]/2, im.shape[0]/2))
这适用于单 channel 和 3 channel 图像。请注意,需要在第二个参数中恢复形状顺序。
关于python - PIL/scipy.misc 中的 imresize 仅适用于 uint8 图像?有什么选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26793582/
我找到了一些放大图像的方法,但没有缩小图像的解决方案。我目前正在使用最近邻法。在不使用 imresize 的情况下,我怎么能用双线性插值来做到这一点? MATLAB 中的函数? 最佳答案 在您的评论中
我尝试使用 MATLAB 调整图像的大小,但直接了解有关使用双线性模式的 imresize 函数有些奇怪。 我会给你一些例子来确定问题出在哪里。比如说,以下是一维矩阵。 A: [0 1 2] B: [
我有一个 numpy 数组 A,由多个相同大小的图像组成 [N_images,width,height,3]。 我想以最快的方式将 misc.imresize() 应用于每个人。 所以我定义: def
我用 0.25 的比例调整了一个图像的大小,然后使用 4 的比例放大了它。 imageReduced = imresize(imageOriginal, 0.25, 'nearest'); image
我有一张图片,我想让它的宽度和长度都是原始尺寸的两倍(即原始面积的 4 倍)。我使用的是 imresize(X,2),但有人告诉我应该改用 interp2。 我知道 imresize 默认使用双三次插
我曾经使用 scipy resize 函数来缩小图像。但由于这个函数在最新版本的 scipy 中已被弃用,我正在寻找替代方案。 PIL 似乎很有前途,但我如何将其用于 3d 图像? (600,800,
看完imresize.m documentation ,我不明白如果输入图像实际上是复数矩阵会发生什么。我正在查看一些产生必要输出的代码,它使用 imresize(A,n) 其中 A 是复数矩阵,n
我必须缩小数据以输入神经网络。 我想使用 cv2.imresize , 但关于它如何插入数据以按比例缩小,有多种选择: INTER_NEAREST - 最近邻插值法 INTER_LINEAR - 双线
我正在使用 Matlab/Octave imresize() 函数来重新采样给定的二维数组。我想了解 imresize 中使用的特定插值算法是如何工作的。 (我在 Windows 上使用 Octave
我注意到,在 openCV 中使用双三次插值对矩阵进行下采样时,即使原始矩阵都是正值,我也会得到负值。 我附上下面的代码作为例子: // Declaration of variables cv::Ma
如何将我的函数用作 MATLAB 中 imresize 函数的插值方法? 我看了MATLAB的帮助关于使用自定义函数进行插值方法的方法,但是没有任何明确的例子。我尝试为 ma 编写代码 最佳答案 im
我有一张图片,我想调整它的大小(高档)。我不想在我的图像中引入额外的灰度级。这就是为什么我使用最近邻插值如下: scipy.misc.imresize(image, image2.shape, i
我编写了以下代码以在 mex 文件中使用 imresize 函数。 #include "mex.h" void mexFunction(int nlhs, mxArray *plhs[],
我想使用仍然使用scipy.misc.imresize()的旧脚本,该脚本不仅已弃用,而且已从scipy中完全删除。相反,开发人员建议使用numpy.array(Image.fromarray(arr
我有以下 MATLAB 代码,我想将其转换为 C++ 假设 Gr 是二维矩阵并且 1/newscale == 0.5 Gr = imresize(Gr, 1 / newScale); 在the MAT
我收到以下警告消息: ...\anaconda3\lib\site-packages\ipykernel_launcher.py:1: DeprecationWarning: `imresize` i
我目前正致力于将一些代码从 Matlab 移植到 C++,但在调整图像大小方面遇到了一些困难。我正在使用 OpenCV 在 C++ 中调整大小,但结果不匹配。我知道 Matlab 中的抗锯齿选项,但在
我正在将 MATLAB 代码传输到 python 中并尝试使用 OpenCV 函数 cv2.resize 缩小图像,但我从 MATLAB 输出中得到了不同的结果。 为确保我的代码在调整大小之前没有做错
document scipy.misc.imresize 表示 imresize 已弃用!请改用 skimage.transform.resize。但似乎 skimage.transform.resi
PIL/scipy.misc 中实现的imresize 似乎只适用于 uint8 图像 >>> import scipy.misc >>> im = np.random.rand(100,200) >
我是一名优秀的程序员,十分优秀!