相关疑难解决方法(0)

曼哈顿度量的 Voronoi 图

我正在使用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可以处理感兴趣的指标,但不完全确定如何实现它才能正常工作?

python voronoi scipy

6
推荐指数
1
解决办法
1450
查看次数

PIL TypeError:无法处理此数据类型

我有一个图像存储在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)

python python-imaging-library

5
推荐指数
3
解决办法
3179
查看次数

在Python中将图像中的颜色映射到颜色列表中最接近的成员

我有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)

python indexing rgb numpy colors

5
推荐指数
1
解决办法
82
查看次数

Numpy图像切片返回黑色补丁/错误值

最终目标是拍摄图像并将其切片成我保存的样本.问题是我的切片随机返回黑色/不正确的补丁.贝娄是一个小样本计划.

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补丁产量:

在此输入图像描述

python numpy image image-processing scipy

4
推荐指数
1
解决办法
915
查看次数

通过python将.mat文件扩展名图像转换为.jpg

我目前正在尝试将图像从.mat文件转换为从该站点下载的.jpg文件 - BrainTumorDataset。目录中包含的所有文件都是.mat文件,现在我想通过python将所有文件转换为.jpg格式,以便通过CNN制作一个项目(使用深度神经网络的脑肿瘤分类)。我在谷歌搜索但后来我没有从那里得到任何东西,只有一些关于如何在 python 中加载 .mat 文件的主题,但这也没有帮助我。我在 StackOverflow 中找到了一个答案,但这不适用于这个数据集,而且答案是在 python 中加载 .mat 图像,但我想将.mat图像转换为.jpg 格式。

matlab image image-processing python-3.x deep-learning

4
推荐指数
1
解决办法
3345
查看次数

CSV到python中的图像

我想用 csv 数据创建一个图像。

我正在阅读 csv:

f = open('file.csv', 'rb')
reader = csv.reader(f)
Run Code Online (Sandbox Code Playgroud)

从这里开始,我想制作一个灰度图像,将列表中的每一行数字转换为图像文件中的一行强度。

不确定什么会有用,但这里有一些关于我的 csv 文件的详细信息:使用浮点数,列:315,行:144

谢谢

python csv image

2
推荐指数
1
解决办法
2万
查看次数

为什么 PIL 的 Image.fromarray() 会扭曲我的图像颜色?

我正在使用以下代码为 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 视频输出的缩略图完全失真,因为它似乎已经交换了红色和蓝色,看起来像这样:在此处输入图片说明 谁或什么是这种图像失真的罪魁祸首?

python opencv image-processing python-imaging-library cv2

2
推荐指数
1
解决办法
1558
查看次数