Wolfram 언어

외부 서비스

이미지상의 텍스트 번역

이미지를 입력으로 얻고 그 안에 포함된 텍스트를 영어로 번역하는 함수를 구축 할 수 있습니다.

In[1]:=
Click for copyable input
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]:=
Click for copyable input
mt = ServiceConnect["MicrosoftTranslator"];

이미지를 가져옵니다.

In[3]:=
Click for copyable input

텍스트가 포함된 부분을 선택합니다.

In[4]:=
Click for copyable input
col = ImageTake[img, {970, 1920}, {770, 1300}]
Out[4]=

사전에 정의된 함수를 사용하여 번역을 얻습니다.

In[5]:=
Click for copyable input
translation = ImageTranslate[col, ServiceObject -> mt]
Out[5]=

Wolfram 언어를 사용하면 번역한 텍스트를 실제 색상으로 변환 역시 가능합니다.

In[6]:=
Click for copyable input
Interpreter["Color"] /@ translation
Out[6]=

관련 예제

de en es fr ja pt-br ru zh