【发布时间】:2020-02-16 19:57:32
【问题描述】:
我有一个 png,我把它变成了 pd.DataFrame,其中包含布尔值。对于白色像素,我得到“假”,而对于黑色像素,我得到“真”。我想生成 DXF 图。为此,我正在尝试获取数据框中每个“真”的坐标,以便稍后将它们连接起来画线。
这是我目前拥有的代码:
from PIL import Image
import numpy as np
import pandas as pd
img = Image.open('/home/sinushas/Downloads/Brezynio_Konvertavimas/test.png')
thresh = 200
fn = lambda x : 255 if x > thresh else 0
r = img.convert('L').point(fn, mode='1')
r.save('/home/sinushas/Downloads/Brezynio_Konvertavimas/test_converted.png')
im = Image.open('/home/sinushas/Downloads/Brezynio_Konvertavimas/test_converted.png')
im2arr = np.array(im) # im2arr.shape: height x width x channel
df = pd.DataFrame(im2arr)
df = (df == False)
这是生成的 pd.Dataframe:
0 1 2 3 4 5 6 7 8 9
0 False False False False False False False False False False
1 False False False False False False False False False False
2 False False True True True True True True False False
3 False False False False True True False False False False
4 False False False False True True False False False False
5 False False False False True True False False False False
6 False False False False True True False False False False
7 False False False False False False False False False False
8 False False False False False False False False False False
9 False False False False False False False False False False
我希望得到以下坐标: (2:3),(2:4),(2:5),(2:6),(2:7),(2:8),(3:5),(3:6),(4 :5),(4:6),(5:5),(6:6),(6:5),(6:6)
我还没有找到可以从 Dataframe 中获取任何坐标的工作代码。 我试过的东西:
result = im2arr.where('True')
df.sort_index()
res = [i for i, val in enumerate(df) if val]
感谢任何提示。
【问题讨论】:
标签: python python-3.x pandas dataframe coordinates