如何将使用 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 文件,然后使用 cat
和 image_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()
)
我使用 image_read
(来自 magick
包)读入了两个 .jpg 文件,然后使用 cat
和 image_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()
)