Перевод текста в изображении
Вы можете построить функцию, которая переводит содержащийся в изображении текст на английский.
In[1]:=
ImageTranslate[image_, rules___Rule] :=
ImageTranslate[image, Association@rules];
ImageTranslate[image_, args_] := Module[
{tr, gt, translatedText, to = Entity["Language", "English"], i,
ifc, rule, im, result = {}, recognizedList},
i = Binarize@ColorNegate@image;
ifc = ImageForestingComponents[ColorNegate@i,
Automatic, {First@ImageDimensions@i, 1}];
rule = {h__, {0 ..}, w : {0 ..}, {0 ..}, t__} -> {h, w, w, t};
im[x_] :=
Transpose[
Transpose[Replace[ifc, Except[x] -> 0, {2}] //. rule] //. rule];
tr = TextRecognize[Image[im[#]], Language -> "Spanish"] & /@
Range[2, Max@ifc];
recognizedList = Flatten@List[tr];
gt = args[ServiceObject];
translatedText =
gt["Translate", "To" -> to, "Text" -> #] & /@ recognizedList;
translatedText
]
Установить связь с Microsoft Translator API.
In[2]:=
mt = ServiceConnect["MicrosoftTranslator"];
Импортировать изображение.
In[3]:=
Выбрать область с текстом.
In[4]:=
col = ImageTake[img, {970, 1920}, {770, 1300}]
Out[4]=
Использовать ранее обозначенную функцию, чтобы получить перевод.
In[5]:=
translation = ImageTranslate[col, ServiceObject -> mt]
Out[5]=
Преобразовать текст в цвета с помощью Wolfram Language
In[6]:=
Interpreter["Color"] /@ translation
Out[6]=