Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将选区解析图的输出保存为图像?

如何将选区解析图的输出保存为图像?
EN

Stack Overflow用户
提问于 2022-03-15 03:34:28
回答 1查看 191关注 0票数 0

使用svgling模块,我生成了选区解析树。以下是svgling:svgling模块github的github链接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install svgling
import svgling
import nltk
var ='(S (NP this tree) (VP (V is) (AdjP pretty)))'
svgling.disable_nltk_png()
random=svgling.draw_tree(nltk.Tree.fromstring(var))
display(random)

使用这段代码,我得到了这个图作为选区解析树的输出(如下所示)。我想要生成这个输出的.png文件。选区解析树(上述代码的输出)

为了将输出保存为.png文件,我运行了以下代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os
from nltk.tree import Tree
from nltk.draw.tree import TreeView
from nltk.draw.util import CanvasFrame
from nltk.draw import TreeWidget
os.system('Xvfb :1 -screen 0 1600x1200x16  &')    # create virtual display with size 1600x1200 and 16 bit color. Color can be changed to 24 or 8
os.environ['DISPLAY']=':1.0' 
t = Tree.fromstring('(S (NP this tree) (VP (V is) (AdjP pretty)))')
cf = CanvasFrame()
TreeView(t)._cframe.print_to_file('output.ps')
os.system('convert output.ps output.png')

然而,这段代码在google TclError: couldn't connect to display ":1.0"中显示了错误,并在jupyter笔记本中返回了一个数值(ex: 4)。

我试图在几个网站上调查它,但没有找到任何解决办法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-15 09:06:40

有一次,我还必须将选区解析图转换为图像。为此,我首先将其转换为PostScript (.ps)文件。然后,从.ps文件将其转换为.png文件。

为了将树关系图转换为.ps文件,我运行了以下代码。这将给出output.ps文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from nltk.tree import Tree
from nltk.draw.tree import TreeView
t = Tree.fromstring('(S (NP this tree) (VP (V is) (AdjP pretty)))')
TreeView(t)._cframe.print_to_file('output.ps')

然而,我试图在google上运行代码。它给出了一个错误:

TclError: Google中没有显示名称和$DISPLAY环境变量

若要解决此问题,请运行以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!apt-get install -y xvfb # Install X Virtual Frame Buffer
import os
os.system('Xvfb :1 -screen 0 1600x1200x16  &')    # create virtual display with size 1600x1200 and 16 bit color. Color can be changed to 24 or 8
os.environ['DISPLAY']=':1.0'

现在要将output.ps文件转换为output.png:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!apt install ghostscript python3-tk
from PIL import Image
psimage=Image.open('output.ps')
psimage.save('output.png')

然而,这样无法获得很好的图像质量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71481565

复制
相关文章
redux-thunk中间件
最近在看redux,主要是redux官方教程(参考文章1)和网上文章(参考文章2),基础部分已经看完,正在理解middleware中间件部分,自我感觉中间件的思想不难理解,主要是它的实现方式涉及到函数式编程,真的太抽象了。redux-thunk是一种中间件,它能使你在action creator中返回函数,此返回函数就是thunk函数,模拟一下就是
张宗伟 plus
2022/10/28
5560
Redux中间件的原理
我们在react中使用redux时有时候需要使用redux的中间件,那么redux的中间件是如何是实现的呢?看代码:
挥刀北上
2021/01/22
5280
Redux中间件的原理
简析redux技术栈(一):redux中间件
从上面可以看到,一个中间件函数要最后完成,需要再执行前经过两次的初始化(分别传入 store 和 next 方法),然后到最后的调用
ACK
2020/01/14
5760
Redux异步解决方案 1. Redux-Thunk中间件
简单介绍一下thunk,这是一个中间件,是解决redux异步问题产生的。我们都知道,在使用redux的时候,通过dispatch一个action 发生到reducer 然后传递给store修改状态 一系列都是同步的,那如果说我dispatch一个action 这个action帮我请求一下接口数据,你发现接口请求是异步的,没有办法等接口数据返回再传递给reducer 这个时候中间件就产生啦。 redux比较常用的中间件有 redux-saga、redux-thunk、redux-promise等 都是为了解决dispatch action异步处理问题
憧憬博客
2020/07/21
1.3K0
针对数据存储区的攻击测试
学习打卡计划是信安之路知识星球开启的 “每天读书一小时,挑战打卡一百天” 主题活动,能够坚持学习打卡 100 天的同学可以获得信安之路提供的百分成就徽章和证书,学习书籍可以自选,主要目的是养成每日读书学习的好习惯,并将自己的学习心得分享出来供大家学习。
信安之路
2021/01/07
7150
Redux 异步解决方案2. Redux-Saga中间件
因为Generator。结合yield  yield操作符会获取右边表达示的值返回 可以用于异步变同步操作 中间件的特性: 以前的 action -> reducers -> store 现在的 action -> middleware -> reducers -> store
憧憬博客
2020/07/21
1.1K0
redux-thunk 中间件的示例
Redux处理异步任务——异步数据流中间件:redux-thunk & action是一个函数,函数内部处理异步任务
用户9914333
2022/07/22
5650
消息中间件—Kafka数据存储(一)
摘要:消息存储对于每一款消息队列都非常重要,那么Kafka在这方面是如何来设计做到高效的呢? Kafka这款分布式消息队列使用文件系统和操作系统的页缓存(page cache)分别存储和缓存消息,摒弃了Java的堆缓存机制,同时将随机写操作改为顺序写,再结合Zero-Copy的特性极大地改善了IO性能。而提起磁盘的文件系统,相信很多对硬盘存储了解的同学都知道:“一块SATA RAID-5阵列磁盘的线性写速度可以达到几百M/s,而随机写的速度只能是100多KB/s,线性写的速度是随机写的上千倍”,由此可以看出对磁盘写消息的速度快慢关键还是取决于我们的使用方法。鉴于此,Kafka的数据存储设计是建立在对文件进行追加的基础上实现的,因为是顺序追加,通过O(1)的磁盘数据结构即可提供消息的持久化,并且这种结构对于即使是数以TB级别的消息存储也能够保持长时间的稳定性能。在理想情况下,只要磁盘空间足够大就一直可以追加消息。此外,Kafka也能够通过配置让用户自己决定已经落盘的持久化消息保存的时间,提供消息处理更为灵活的方式。本文将主要介绍Kafka中数据的存储消息结构、存储方式以及如何通过offset来查找消息等内容。
用户2991389
2018/09/05
9030
消息中间件—Kafka数据存储(一)
如何将WebRTC播放协议添加到EasyCVR?
自2020年浏览器的发展和兼容性发生了变化,WebRTC的延时性、安全性得到了提升和保护,尤其是疫情爆发后,实时视频的需求比之前增长了30倍,这更刺激了WebRTC产品的持续快速发展。因此我们也在EasyGBS、EasyDSS等平台内实现了WebRTC协议的播放。
TSINGSEE青犀视频
2021/11/23
1.4K0
一步一步教你把 Redux Saga 添加到 React&Redux 程序中
applyMiddleware 是一个辅助函数,为 redux 的 dispatch 函数添加了功能。
winty
2020/08/16
1K0
学习 redux 源码整体架构,深入理解 redux 及其中间件原理
感兴趣的读者可以点击阅读。 其他源码计划中的有:express、vue-rotuer、redux、 react-redux 等源码,不知何时能写完(哭泣),欢迎持续关注我(若川)。
若川
2020/06/22
1.5K0
在 CentOS 上如何将用户添加到 Sudoers
sudo是一个命令行工具,它被设计为允许用户以其他用户(默认是 root 用户)身份去运行命令。
雪梦科技
2020/05/11
11.5K0
在 CentOS 上如何将用户添加到 Sudoers
在 Debian 中如何将用户添加到 Sudoers
sudo是一个命令行工具,它允许被信任用户以另外一个用户身份运行命令,默认是 root 用户。
雪梦科技
2020/05/11
12.6K0
在 Debian 中如何将用户添加到 Sudoers
深入理解Redux之中间件(middleware)
redux深入理解之中间件(middleware) 理解reduce函数 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。 arr.reduce([callback, initialValue]) 关于reduce的用法,这里不再做多述,可以去这里查看 看如下例子: let arr = [1, 2, 3, 4, 5]; // 10代表初始值,p代表每一次的累加值,在第一次为10 // 如果不存在初始值,那么p第一次值为1 //
糊糊糊糊糊了
2018/05/09
8950
在 Ubuntu 中如何将用户添加到 Sudoers
sudo是一个命令行程序,它允许被信任的用户以 root 或者其他用户身份去运行命令。
雪梦科技
2020/05/09
34.4K0
在 Ubuntu 中如何将用户添加到 Sudoers
zabbix 5.0如何将esxi6.7添加到监控
今天有个需求,需要将一台esxi 6.7 server添加到我们的zabbix监控服务器上,将我做的操作踩的一点坑写出来
姚华
2022/06/29
1.8K0
zabbix 5.0如何将esxi6.7添加到监控
express, koa, redux三者中间件对比
Link: http://yoursite.com/2018/09/14/express-koa-redux三者中间件对比/
落落落洛克
2021/01/08
6880
express, koa, redux三者中间件对比
React-Redux-Saga
如上自定义函数已经获取到了网络数据,添加到 Redux 中保存是通过 Saga 提供的 put 方法进行添加即可,在更改 store.js 告诉 saga 中间件的生成器哪些通过 dispatch 派发的 action 需要进行拦截, 在 run 方法进行指定:
杨不易呀
2023/10/01
2180
React-Redux-Saga
Redux的中间件Middleware不难,我信了^_^
Redux的action和reducer已经足够复杂了,现在还需要理解Redux的中间件。为什么Redux的存在有何意义?为什么Redux的中间件有这么多层的函数返回?Redux的中间件究竟是如何工作的?本文来给你解惑,Redux中间件从零到“放弃”。
小美娜娜
2019/04/04
5440
Redux的中间件Middleware不难,我信了^_^
点击加载更多

相似问题

数据未存储在redux存储区中。

24

如何将变量存储在Redux存储区中?

12

Redux中间件访问存储

11

如何将上传的值存储到redux存储区

10

Redux Promise中间件+ Redux模拟存储测试

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文