2017-04-13 124 views
1

我使用這個MATLAB程序到阿拉伯文字寫入圖像使用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

我無法複製。該文本在R2017a中顯示得很好。你使用什麼樣的'版本'?你的示例代碼有幾行內容什麼都不做。 – horchler

+0

我正在使用matlab R2015a –

回答

1

這是因爲默認情況下,m文件的字符集編碼是ANSI。 因此,您可以使用corresponding entities作爲所需的字母。這些實體可以使用產生在命令窗口中執行以下操作:

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

所以,你可以使用:

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); 

編輯:您在comment提到的問題是在MATLAB R2015a重複性。您可以使用文件交換中的AddTextToImage。下載並將其添加到您的路徑。
然後在上面的代碼中將rgb = insertText(I,position,str);更改爲rgb = AddTextToImage(I,str,position);

+1

這些實體可以用'uint16(['''''''''','''''))''自動生成。工作空間中的 – horchler

+0

變量具有阿拉伯文本,但在顯示圖像時只有一個黃色的矩形空不再'?'我試圖改變文本大小,但沒有改變總是空的矩形 –

+0

@AmineGhozlène你是​​否嘗試了代碼,因爲它是在答案中給出,或者你做了一些改變? –