我正在使用scipy.spatialVoronoi 图的可视化。然而,这里使用的距离度量是欧几里德(L2)。我正在寻找一种在我的 Voronoi 图上进行曼哈顿 (L1) 度量的方法。有没有一种简单的(或多或少)方法可以做到这一点?
import numpy as np
import matplotlib.pyplot as plt
points = np.array([[1.5, 1.], [3.5, 1.], [5., 2.], [2.5, 3.], [3.5, 1.], [4., 4.]])
from scipy.spatial import Voronoi, voronoi_plot_2d
vor = Voronoi(points)
fig = plt.figure()
ax = fig.add_subplot('111')
ax.plot(points[:, 0], points[:, 1], 'o', color='k')
ax.set_xlim([-1, 9])
ax.set_ylim([-1, 9])
voronoi_plot_2d(vor, ax)
Run Code Online (Sandbox Code Playgroud)
基本上我想要得到类似的东西,但采用 L1 度量。
我发现scipy.spatial.distance.cityblock可以处理感兴趣的指标,但不完全确定如何实现它才能正常工作?
我有一个图像存储在numpy数组中,我想将其转换PIL.Image为执行仅适用于PIL的插值。
当尝试通过Image.fromarray()它进行转换时,会引发以下错误:
TypeError:无法处理此数据类型
我要运行的是:
from PIL import Image
x # a numpy array representing an image, shape: (256, 256, 3)
Image.fromarray(x)
Run Code Online (Sandbox Code Playgroud) 我有19种颜色的列表,它是大小的numpy数组(19,3):
colors = np.array([[0, 0, 0],
[0, 0, 255],
[255, 0, 0],
[150, 30, 150],
[255, 65, 255],
[150, 80, 0],
[170, 120, 65],
[125, 125, 125],
[255, 255, 0],
[0, 255, 255],
[255, 150, 0],
[255, 225, 120],
[255, 125, 125],
[200, 100, 100],
[0, 255, 0],
[0, 150, 80],
[215, 175, 125],
[220, 180, 210],
[125, 125, 255]
])
Run Code Online (Sandbox Code Playgroud)
现在,我有一个图像(size的numpy数组(1024,1024,3)),其颜色与上面定义的所有颜色有些接近或相等。但是,我的程序要求图像只能包含上面的颜色,而不能包含附近的颜色,因此我需要将数组中每个像素的颜色转换为19种颜色中最接近的颜色。
我在这里看到了一个仅使用Numpy即可从一组颜色中找到最接近的颜色的函数(效果很好)Python-从给出颜色的列表中查找与某种颜色最接近的颜色:
def closest_color(colors,color):
colors = np.array(colors)
color = np.array(color)
distances = np.sqrt(np.sum((colors-color)**2,axis=1)) …Run Code Online (Sandbox Code Playgroud) 最终目标是拍摄图像并将其切片成我保存的样本.问题是我的切片随机返回黑色/不正确的补丁.贝娄是一个小样本计划.
import scipy.ndimage as ndimage
import scipy.misc as misc
import numpy as np
image32 = misc.imread("work0.png")
patches = np.zeros((36, 8, 8))
for i in range(4):
for j in range(4):
patches[i*4 + j] = image32[i:i+8,j:j+8]
misc.imsave("{0}{1}.png".format(i,j), patches[i*4 + j])
Run Code Online (Sandbox Code Playgroud)
我的形象的一个例子是:
8x8补丁的0,0补丁产量:
我目前正在尝试将图像从.mat文件转换为从该站点下载的.jpg文件 - BrainTumorDataset。目录中包含的所有文件都是.mat文件,现在我想通过python将所有文件转换为.jpg格式,以便通过CNN制作一个项目(使用深度神经网络的脑肿瘤分类)。我在谷歌搜索但后来我没有从那里得到任何东西,只有一些关于如何在 python 中加载 .mat 文件的主题,但这也没有帮助我。我在 StackOverflow 中找到了一个答案,但这不适用于这个数据集,而且答案是在 python 中加载 .mat 图像,但我想将.mat图像转换为.jpg 格式。
我想用 csv 数据创建一个图像。
我正在阅读 csv:
f = open('file.csv', 'rb')
reader = csv.reader(f)
Run Code Online (Sandbox Code Playgroud)
从这里开始,我想制作一个灰度图像,将列表中的每一行数字转换为图像文件中的一行强度。
不确定什么会有用,但这里有一些关于我的 csv 文件的详细信息:使用浮点数,列:315,行:144
谢谢
我正在使用以下代码为 mp4 视频生成缩略图:
import cv2 as cv
from PIL import Image
vidcap = cv.VideoCapture(videoPath)
vidcap.set(cv.CAP_PROP_POS_MSEC, millisecond)
#Turn video frame into numpy ndarray
success, image = vidcap.read()
cv.imwrite('fromImage.jpg', image) #line to be replaced
Run Code Online (Sandbox Code Playgroud)
由高预算、专业拍摄的视频生成的缩略图如下所示:
不幸的是,在我的应用程序上下文中,我无法将图像帧直接写入文件。相反,我必须将 cv 生成的图像数组转换为 PIL 图像,然后从那里开始。它看起来像这样:
# Turn numpy ndarray int PIL image
img = Image.fromarray(image)
img.save('fromArray.jpg') #Saving it for stackoverflow
Run Code Online (Sandbox Code Playgroud)
但是从同一个 mp4 视频输出的缩略图完全失真,因为它似乎已经交换了红色和蓝色,看起来像这样:
谁或什么是这种图像失真的罪魁祸首?