我有一个相当大的二进制jpg文件。这个想法是提取一小部分并找到形状。稍后,我想制作一个形状文件的形状。我采取的步骤: 1.加载图像并对其进行裁剪 2.模糊图像 3.骨架化图像 4.提取骨架化图像的非零值坐标 5.做一些插值(代码中未显示) 6.转换坐标(我刚刚添加了差异),使其具有与大图像中原来相同的坐标(在裁剪之前) 7.从原始jpg相同大小的tiff文件中提取地理参考数据。将这些绑定到我们的形状并创建形状文件。 我的最终形状文件产品似乎已翻转。因此,我在整个编码过程中都进行了检查,在提取坐标后,图像的方向似乎发生了变化。当我使用imshow显示矩阵时,方向都很好。当我使用“散射”来显示点的坐标时,方向是关闭的
ds = gdal.Open(‘path_to/binary.jpg')
image = ds.ReadAsArray()
image_crop = image[28500:30000,25500:28000]
def blur(image,resblur):
blur = cv2.blur(image,(resblur,resblur))
blur = (blur-np.min(blur))/(np.max(blur)-np.min(blur))
blur[blur<=np.mean(blur)] = 0
blur[blur!=0]=1
return blur
blur = blur(image_crop,50)
plt.imshow(blur)
def skel_coordinates(blur):
skel = skeletonize(blur)
skel = np.uint8(skel)
y,x = np.nonzero(skel)
coords = np.transpose(np.vstack([x, y]))
return skel, coords
skel,coords = skel_coordinates(blur)
plt.imshow(skel)
plt.imshow(coord[:,0],coord[:,1])
x = x + 25500
y = y + 28500
目前没有回答
相关问题 更多 >
编程相关推荐