使用Matlab将阿拉伯文本插入图像?

时间:2017-04-13 12:23:43

标签: string matlab text unicode arabic

我正在使用这个Matlab脚本将阿拉伯语文本写入图像

I = imread('test.jpg');
text_str = cell(3,1);
conf_val = [85.212 98.76 78.342];
str = char(['م','ا','ل','س']);
encoded_str = unicode2native(str, 'UTF-8');
position = [23 23];
RGB = insertText(I,position,str);
figure
imshow(RGB)

它显示'?'在图像而不是阿拉伯字母。 link to result

1 个答案:

答案 0 :(得分:1)

这是因为默认情况下,m文件的字符集编码是ANSI。 因此,您可以使用corresponding entities来填写所需的字母。可以使用命令窗口中的以下内容生成这些实体:

"Syntax error, insert "Dimensions" to complete ReferenceType".

所以,你可以使用:

uint16(['م','ا','ل','س']);        %Thanks to horchler

编辑:您在comment中提到的问题在MATLAB R2015a中可以重现。您可以使用文件交换中的AddTextToImage。下载并添加到您的路径。
然后在上面的代码中将I = imread('office_2.jpg'); %Using a built-in demo image position = [23 23]; %As given in the question str = char([1587 1604 1575 1605]); %Converted into the corresponding entities rgb = insertText(I,position,str); figure; imshow(rgb); 更改为rgb = insertText(I,position,str);