我会使用 ImageMagick 将圆盘从极坐标转换为笛卡尔坐标,然后,当您阐明您实际指的是哪些阴影区域时,我怀疑其余部分会很容易:
convert disc.png -distort DePolar 0 cartesian.jpg
由于我没有收到您的任何反馈,因此我正在思考。因此,您还可以将所有非灰色阴影转换为白色,将所有灰色转换为黑色,如下所示:
convert disc.png -fuzz 5% -fill black -opaque rgb\(211,211,211\) -fill white +opaque black out.png
而且,你可以同时做到这两点:
convert disc.png -distort depolar 0 -fuzz 5% -fill black -opaque rgb\(211,211,211\) -fill white +opaque black out.png
然后您可以将图像压缩成一行,如下所示:
convert disc.png -distort depolar 0 -fuzz 5% -fill black -opaque rgb\(211,211,211\) -fill white +opaque black -resize x1\! out.png
(我会将其显示为 10 像素高,以便您看到它)
现在,您的坐标是行从黑色变为白色以及从白色变为黑色的位置。您可以将它们提取到文本中并解析出来。像这样:
convert disc.png -distort depolar 0 -fuzz 5% -fill black -opaque rgb\(211,211,211\) -fill white +opaque black -resize x1\! -colorspace gray -threshold 50% txt: | more
# ImageMagick pixel enumeration: 1000,1,255,srgba
0,0: (255,255,255,1) #FFFFFF white
1,0: (255,255,255,1) #FFFFFF white
2,0: (255,255,255,1) #FFFFFF white
3,0: (255,255,255,1) #FFFFFF white
4,0: (255,255,255,1) #FFFFFF white
5,0: (255,255,255,1) #FFFFFF white
6,0: (255,255,255,1) #FFFFFF white
7,0: (255,255,255,1) #FFFFFF white
或者像这样:
convert disc.png -distort depolar 0 -fuzz 5% -fill black -opaque rgb\(211,211,211\) -fill white +opaque black -resize x1\! -colorspace gray -threshold 50% -compress none pbm: | more
P1
1000 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0