我正在尝试构造一些代码,这些代码是为接受单个float值而编写的,因此使用1D (最终是2D) numpy.arrays作为输入可以很好地工作。
这个函数看起来是这样的(不,这个示例没有做任何有用的事情,但是如果删除了do_math和do_some_more_math,它将产生所描述的行为):
def do_complicated_math(r, g, b):
rgb = numpy.array([r, g, b])
# Math! No change in array shape. To run example just comment out.
rgb = do_
我有一个numpy形状(N,)数组,它包含N个填充的rgb值,使用以下公式-
rgb = (r<<16) + (g<<8) + b
我试图解压缩这个数组,然后使用未打包的值创建一个形状为numpy的(N,3)数组。见下面的代码片段-
import numpy as np
def unpack_rgb(rgb):
b = rgb & 255
g = (rgb >> 8) & 255
r = (rgb >> 16) & 255
return r, g, b
N = 10
c = (np.
下面的代码与预期的一样工作,但我很好奇是否可以用本机numpy函数/方法替换循环,以获得更好的性能。我拥有的是一个包含RGB值(用作查找表)的数组和两个保存灰度值(0-255)的2d数组。这两个数组的每个值对应于查找表的一个轴的值。
如前所述,真正好的是摆脱python中的(slow)循环,并使用更快的numpy方法。
#!/usr/bin/env python3
from PIL import Image
import numpy as np
dim = (2000, 2000)
rows, cols = dim
# holding a 256x256 RGB color lookup
对于游戏窗口中的每个像素,是否有可能(就性能而言)拥有一个多维数组,每个像素包含一个8位整数?我需要及时更新基于此数组的游戏窗口。
我的目标如下:
import numpy
window_array = numpy.zeros((600, 600), dtype=numpy.int8)
#draw the screen
for (y, x), value in numpy.ndenumerate(window_array):
if value == 1:
rgb = (0, 0, 0)
elif value == 2:
rgb = (50, 5
我是Python新手,我需要把RGB谱画成一个numpy数组。对我来说,很明显,我需要提高RGB值的维度,以获得光谱。
import numpy as np
import matplotlib.pyplot as plt
spectrum = np.zeros([255,255, 3], dtype=np.unit8) #init the array
#fill the array with rgb values to create the spectrum without the use of loops
plt.imshow(spectrum)
plt.axis('off
我正在做一个用Python3.8实现Numba和CUDA的项目。目前,我创建了一个具有最终图像维度的数组。接下来,我生成一个带有CUDA内核的映像(速度非常快)。然后,我将像素颜色复制到一个Pillow Image中(非常慢)。我的代码:
for x in range(width):
for y in range(height):
if pixels[x][y] = 0:
color = [0, 0, 0]
else:
# Get color from int as tuple
co
下面的操作是使用for循环的。有人能建议一种使用numpy将操作矢量化的方法吗?
# rgb is a 3 channel image
# points are computed using vector mult op (same size as rgb image)
# dtypes - rgb is uint8 and points is float
buffer = []
for v in range(rgb.shape[1]):
for u in range(rgb.shape[0]):
X,Y,Z = points[u,v,:]
我有一个50000x32x32的数组。arri存储第i个灰度图像。 我想计算这些图像的平均图像。我尝试了以下代码(我从堆栈溢出本身获得此代码)。这段代码实际上是针对RGB图像的。 我知道,我的这些改变有很多错误,抱歉。 import os, numpy, PIL
from PIL import Image
# Access all PNG files in directory
allfiles=os.listdir(os.getcwd())
imlist=arr
N=len(imlist)
# Assuming all images are the same size, get dimen
我正在尝试使用skimage.transform.resize function调整.jpg图像的大小。函数返回奇怪的结果(见下图)。我不确定这是一个bug还是仅仅是对函数的错误使用。
import numpy as np
from skimage import io, color
from skimage.transform import resize
rgb = io.imread("../../small_dataset/" + file)
# show original image
img = Image.fromarray(rgb, 'RGB')
i
我有一个numpy数组,它是形状(高度,宽度,3)的彩色图像"img“,以及形状(高度,宽度)的深度numpy数组。我想创建一个RGBD图像并显示它,为此我执行以下操作: o3d.geometry.RGBDImage.create_from_color_and_depth(img, depth) 但是我得到了一个错误: TypeError: create_from_color_and_depth(): incompatible function arguments. The following argument types are supported:
1. (color:
尝试保存倒置图像,将倒置的RGB颜色数据保存在数组pixelArray中,然后将其转换为numpy数组。不知道是什么问题,但任何帮助都是值得感激的。
from PIL import Image
import numpy as np
img = Image.open('image.jpg')
pixels = img.load()
width, height = img.size
pixelArray = []
for y in range(height):
for x in range(width):
r, g, b = pixels[x, y]
我加载了一个大约2 2gb的numpy数组,当我试图规范化它的条目时,我得到了内存错误:
import numpy as np
fX = 'train_X.npy'
imgs = np.load(fX)
#normalize
X = (imgs - 128.)
X = X / 255.
X包含10000个rgb图像,因此它的形状为(10012,210,320,3),X.bytes返回2018419200。我使用的是Ubuntu服务器发行版(谷歌云),有14‘t的内存,python和numpy都是64位的,所以我真的看不出有什么问题……有什么想法吗?