我们首先介绍下legend,legend可以分为discrete color legend,continuous color legend和其他的。在这项工作中,我们只支持前两种legend,对于discrete color legend我们首先需要提取颜色和文本,然后将他们对应起来。对于continuous color legend,我们需要提取出刻度的范围,使用插值来填充中间的值。
这写那个工作可以划分为5个步骤:识别legend,legend分类,颜色提取,文本提取和重构颜色映射。接下来我们会对这5个步骤进行介绍。
1. 识别legend。我们需要识别出legend的区域,首先我们判断legend是否在主视图中,如果在的话,我们无法自动识别,需要人工圈选出legend的区域。如果在主视图中,我们通过使用二值化图片,洪泛填充和组建算法来提取出legend。我们可以看到左下角,我们一共提取出了两个区域,最大的那个区域是主视图,第二大的区域就是legend。
2. legend分类,对于legend,我们使用CNN进行分类。
3. 颜色提取。对于图3左图中的discrete color legend,我们是选二值化图片,然后将(b)图放到原始图片上得到图(c),对于图(c),我们使用DBSCAN算法消除噪声点,最后我们的提取结果如(d)所示。对于continuous color legend,我们首先二值化图片,然后使用洪泛填充和组建算法,最大的那个区域就是我们的提取的颜色。
4. 文本提取。我们首先对文字进行检测,然后使用OCR来识别文字,最后文字拼接在一起
5. 重构颜色映射,对于图5上图中的discrete color legend,我们分别提取出颜色和文本之后,我们使用距离将他们映射起来。对于图5下图中的continuous color legend,我们提取出文本的范围,然后使用线性插值得到其实际的范围,对于中间的值,我们使用插值获得。最后我们将原图中的颜色使用我们新的色系替换掉。
图6中是是分别对discrete color legend图片和continuous color legend图片的提取结果
我们还提供一些交互手段帮组我们理解。在图7的第二行中,我们可以点击legend然后主视图中,对应的相同颜色的部分会被高2亮出来。在第三行中,我们可以点击或是刷选一部分区域,然后legend中,对应颜色的部分会被高亮。
这项可以提取位图图片中的颜色然后使用新的色系将颜色替换掉。这项工作还在存在很多限制,比如,只能提取discrete color legend和和continuous color legend,而且对于continuous color legend只支持线性插值提取。
[1] Poco J, Mayhua A and Heer J (2017), “Extracting and Retargeting Color Mappings from Bitmap Images of Visualizations”, IEEE Transactions on Visualization and Computer Graphics. Vol. PP(99), pp. 1-1.
[2] J.PocoandJ.Heer.Reverse-engineeringvisualizations:Recoveringvisual encodings from chart images. Computer Graphics Forum (Proc. EuroVis), 36(3):353–363, 2017.
评论关闭。