如何将使用 image_ocr 和 cat 创建的向量转换为允许我在 R 中使用正则表达式的字符串?

How can I convert a vector created using image_ocr and cat to a character string that allows me to use regular expressions in R?

我使用 image_read(来自 magick 包)读入了两个 .jpg 文件,然后使用 catimage_ocr 从两个和将它们合二为一 return。这确实 return 文本,但有相当多的错误需要使用正则表达式来纠正。但是,我似乎无法使用正则表达式并再次使用 return 文本。这最初将向量的 class 显示为“NULL”,因此我在前面的代码中添加了 as.character 函数,希望这样可以让我在使用正则表达式后 return 文本, 但现在只有 return 个“character(0)”。我曾尝试使用 lapply 将向量转换为字符,并尝试使用 unlist(text) 来查看是否有帮助,但得到了类似的结果。这是我目前拥有的:

#read in image files
text.1 <- image_read("dthw02_Olympics_1.jpg")
text.2 <- image_read("dthw02_Olympics_2.jpg")

#return ocr date from both images combined
text <- as.character(cat(image_ocr(text.1), (image_ocr(text.2))))
class(text) #returns "character"

#regular expressions test to replace lower case with upper case

text <- gsub("paris", "PARIS", text)
text #returns character(0) and doesn't show the text

这是我在行后得到的

text <- as.character(cat(image_ocr(text.1), (image_ocr(text.2))))

我实际上不需要调用 text 它只是 return 当行是 运行.

» LA 2028 5 BEIWING 2008 2 SEOUL 1988 &B MEXICO 1968 shy LONDON 1948

a 巴黎 2024 a 雅典 2004 cs 洛杉矶 1984 @ 东京 1964 Al 柏林 1936

© =

‘东京 2020 =|悉尼 2000 莫斯科 1980 毫秒 罗马 1960 oe 洛杉矶 1932 & | 6 墨尔本/克

cose RIO 2016 亚特兰大 1996 ae 蒙特利尔 1976 | STOGKHOLM'656 阿姆斯特丹 1928 D4 伦敦 2012 巴塞罗那 1992 sm 慕尼黑 1972 1 -|赫尔辛基 1952 “巴黎 1924 8 安特卫普 1920 克 雅典 1896 2 斯德哥尔摩 1912

8 伦敦 1908

ST。路易 1904

4s 巴黎 1900

我对正则表达式的测试只是为了用 PARIS 替换 paris,但在那之后我将有很多关于正则表达式的工作要做。

在评论中解决:

您需要使用 c(image_ocr(text.1), (image_ocr(text.2)))paste(image_ocr(text.1), (image_ocr(text.2))),具体取决于您需要向量还是一个长字符串。

cat(...) 函数是连接和打印,不会return 您的字符串。 (详见?cat()