- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑到这可能是一项相当容易的任务,我想截取一个 unix 终端的屏幕截图并将其转换为文本,或者尽可能接近,就好像我从终端复制了该文本一样。我一直在挖掘,图像到文本的常见选择似乎是 cv2 来清理和识别相关区域,然后 tesseract 用于将识别区域转换为文本。下面的代码来自各种在线资源,但我不得不说我并不完全了解这些功能都在做什么或如何实现我的预期输出。
该代码只是将整个屏幕截图标识为一个给 tesseract 的计数,它的处理似乎是按列而不是行来处理它。
有没有什么地方可以在每条线周围绘制矩形,然后逐行传递给 tesseract?
**更新:**我在将 tesseact 配置设置为“--psm 6”时取得了更多成功。然而,有些字母并没有被完全正确地检测到。我还需要做些什么来清理图像吗?
# Import required packages
import cv2
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'C:\Users\cdoyle5\AppData\Local\Tesseract-OCR\tesseract.exe'
img = cv2.imread("term1.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh1 = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU | cv2.THRESH_BINARY_INV)
rect_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (20, 20))
dilation = cv2.dilate(thresh1, rect_kernel, iterations=1)
contours, hierarchy = cv2.findContours(dilation, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
im2 = img.copy()
with open("text_from_terminal.txt", "w+") as file:
for cnt in contours:
x, y, w, h = cv2.boundingRect(cnt)
cv2.rectangle(im2, (x, y), (x + w, y + h), (0, 255, 0), 2)
# Cropping the text block for giving input to OCR
cropped = im2[y:y + h, x:x + w]
cv2.imshow("cropped", cropped)
cv2.waitKey(0)
text = pytesseract.image_to_string(cropped)
print("detected: ", text)
# Appending the text into file
file.write(text + "\n")
预期输出
ubuntu@vps-f116ed9f:~$ ls -lrt
total 538160
-rw-rw-r-- 1 ubuntu ubuntu 508206724 Oct 17 07:23 splunk-8.1.0-f57c09e87251-Linux-x86_64.tgz
drwxr-xr-x 3 ubuntu ubuntu 4096 Nov 1 21:17 snap
-rw-rw-r-- 1 ubuntu ubuntu 42847944 Nov 17 09:56 splunkforwarder-8.1.0-f57c09e87251-linux-2.6-x86_64.rpm
-rw-rw-r-- 1 ubuntu ubuntu 0 Nov 17 20:10 test
drwxrwxr-x 3 ubuntu ubuntu 4096 Dec 2 11:56 TM129VCE
-rw-rw-r-- 1 ubuntu ubuntu 226 Dec 8 16:34 Dockerfile
drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 28 23:27 screen_to_text
实际输出
ubuntu@v'ps—f116ed9f: 5.: ls —1rt
total 5 3 B 1 6 0
—rw—rw—r——
drwxrixrix
—rw—rw—r——
—rw—rw—r——
drwxrwxrix
—rw—rw—r——
drwxrwxrix
~>—Aw>—‘>—Aw>—A
ubuntu
ubuntu
ubuntu
ubuntu
ubuntu
ubuntu
ubuntu
ubuntu 503206724
ubuntu 4 0 9 6
ubuntu 42B47944
ubuntu 0
ubuntu 4 0 9 6
ubuntu 2 2 6
4 0 9 6
ubuntu
Oct
NOV
NOV
NOV
Dec
Dec
Dec
17
17
17
2B
07:23
21:17
09:56
20:10
11:56
16:34
23:27
sp1unk—a.1.0—f57c09ea7251—Linux—xa6_64.tgz
Snap
sp1unkforwarder—a.1.0—f57c09ea7251—1inux—2.6—xa6_64.rpm
test
TM129VCE
Dockerfile
screen_to_text
最佳答案
据我了解,您想将命令的输出保存在“text_from_terminal.txt”中,如果这是您想要的,那么您可以通过以下代码简单地执行此操作:-
import os
output = os.popen("ls -lrt").read()
with open("text_from_terminal.txt","w+") as file:
file.write(output)
关于python - Unix 终端截屏转文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65485978/
表架构 DROP TABLE bla; CREATE TABLE bla (id INTEGER, city INTEGER, year_ INTEGER, month_ INTEGER, val I
我需要拆分字符串/或从具有以下结构的字符串中获取更容易的子字符串。 字符串将来自 window.location.pathname 或 window.location.href,看起来像 text/n
每当将对象添加到数组中时,我都会尝试更新 TextView ,并在 TextView 中显示该文本,如下所示: "object 1" "object 2" 问题是,每次将新对象添加到数组时,它都会覆盖
我目前正在寻找使用 Java 读取网站可见文本并将其存储为纯文本字符串的方法。 换句话说,我想转换成这样: Hello stupid World进入“ Hello World ” 或者类似的东西 Un
我正在尝试以文本和 HTML 格式发送电子邮件,但无法正确发送正确的 header 。特别是,我想设置 Content-Type header ,但我找不到如何为 html 和文本部分单独设置它。 这
我尝试了上面的代码,但我无法绑定(bind)文本,我怎样才能将资源内部文本 bloc
我刚刚完成了 Space Shooter 教程,由于没有 GUIText 对象,所以我创建了 UI.Text 对象并进行了相应的编码。它在统一播放器中有效,但在构建 Web 应用程序后无效。我花了一段
我有这个代码: - (IBAction)setButtonPressed:(id)sender { NSUserDefaults *sharedDefaults = [[NSUserDefau
抱歉标题含糊不清,但我想不出我想在标题中做什么。无论如何,对于图像上的文本,我使用了 JLabel 文本并将其添加到图标中。 JLabel icon = new JLabel(new Imag
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我在将 Twitter 嵌入到我从 HTML 5 转换的 wordpress 运行网站时遇到问题。 我遇到的问题是推文不是我的自定义字体... 这是我无法使用任何 css 定位的 HTML 代码,我正
我正在尝试找到解决由于使用以下形式的代码而导致的冗余字符串连接问题的最佳方法: logger.debug("Entering loop, arg is: " + arg) // @1 在大多数情况下,
我写了这个测试 @Test public void removeRequestTextFromRouteError() throws Exception { String input = "F
我目前正在创建一个正则表达式来拆分所有匹配以下格式的字符串:&[文本],并且需要获取文本。字符串可能类似于:something &[text] &[text] everything &[text] 等
有没有办法将标题文本从一个词变形为另一个词,同时保留两个词中使用的字母?我看过的许多 css 文本动画大多是视觉的,很少有旋转整个单词的。 我想要做的是从一个词过渡,例如“BEACH”到“CHANGE
总结matplotlib绘图如何设置坐标轴刻度大小和刻度。 上代码: ?
我在容器 (1) 中创建了容器 (2)。你能帮忙如何向容器(1)添加文本吗?下面是我的代码 return Scaffold( body: Padding( padding: c
我似乎找不到任何人或任何人这样做过。我试图限制我们使用的图像数量,并想创建一个带有渐变作为其“颜色”的文本,并在其周围设置渐变轮廓/描边 到目前为止,我还没有看到任何将两者结合在一起的东西。 我可以自
我正在为视频游戏暗黑破坏神 2 使用 discord.py 构建一个不和谐机器人。其中一项功能要求机器人从暗黑破坏神 2 屏幕截图中提取项目的名称和属性。我目前正在为此使用 pytesseract,但
我很难弄清楚如何旋转 strip.text theme 中的属性来自 ggplot2 .我使用的是 R 版本 3.4.2 和 ggplot2 版本 2.2.1。 以下是 MWE 的数据。 > dput
我是一名优秀的程序员,十分优秀!