$\nwarrow$ 左上角那条分割线的Mathematica处理


原本的图片是这个样子的2252397_W2xEX_webp_waifu2x_4x_3n_png.webp

如果把黑色背景去掉至透明然后直接用的话,暗色模式是可以的,亮色模式下因为图形是白的就会看不见。于是想做一个轮廓勾勒,这样暗色亮色就都能看到了。

用Mathematica的Binarize首先进行二值化得到更锐利的图片方便后面操作

1.webp

之后用Dilation把线条做粗一点,如果不这样的话待会勾勒完在暗色模式下线条末端会消失在背景中

2.webp

然后EdgeDetect得到边框的轮廓,并再次Dilation调整线条

3.webp

为了使轮廓在暗色的时候完美融入背景,我们要先反色,然后修改边框的颜色为背景色RGB(29,31,32)

o = Image[
   Replace[ImageData[e], {1 -> {29/255, 31/255, 32/255}, 
     0 -> {1, 1, 1}}, {2}], ColorSpace -> "RGB"];

这里我们读取每个像素的颜色,如果是1(白色)就换成背景色,是0(黑色)就换成白色,这一规则应用是在第二层进行的。其中e是之前得到的轮廓图。这时再去掉白色背景就行了( ̄︶ ̄)↗ 

4.webp

接下来我们还可以通过

p = {#2, -#1} & @@@ 
   Position[ImageData[Thinning @ image], 1, {2}];
ListPlot[p, AspectRatio -> Automatic, Axes -> False]

来得到在图3中颜色值为1(即白色)的点的坐标,这样可以完成在图像边缘取点的任务。