我正在使用这个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
答案 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);
。